From d8393a8b7a51ed28e95cddac2350d6a20f31f953 Mon Sep 17 00:00:00 2001 From: "Kajur, Harish (vk250x)" Date: Thu, 13 Dec 2018 08:37:13 -0500 Subject: [PATCH] Move the aai-schema, annotations and schema generation code from the aai-common repo to the schema service repo as aai-schema should be in the schema service and all code related to it such as generation of the schema code should also be moved to the service Issue-ID: AAI-2002 Change-Id: Ia792d5ae8822642b1816a0e9664bb21fa511e24f Signed-off-by: Kajur, Harish (vk250x) --- aai-annotations/.gitignore | 2 + aai-annotations/LICENSE.TXT | 17 + aai-annotations/pom.xml | 78 + aai-annotations/pom.xml.versionsBackup | 78 + .../java/org/onap/aai/annotations/Metadata.java | 56 + .../org/onap/aai/schema/enums/ObjectMetadata.java | 132 + .../onap/aai/schema/enums/PropertyMetadata.java | 84 + .../org/onap/aai/annotations/AnnotationsTest.java | 48 + aai-schema-gen/pom.xml | 705 ++ .../org/onap/aai/schemagen/AutoGenerateHtml.java | 79 + .../java/org/onap/aai/schemagen/GenerateXsd.java | 318 + .../onap/aai/schemagen/SchemaConfiguration.java | 50 + .../org/onap/aai/schemagen/SpringContextAware.java | 64 + .../schemagen/SwaggerGenerationConfiguration.java | 64 + .../schemagen/genxsd/ConfigTranslatorForDocs.java | 81 + .../aai/schemagen/genxsd/DeleteFootnoteSet.java | 57 + .../onap/aai/schemagen/genxsd/DeleteOperation.java | 106 + .../onap/aai/schemagen/genxsd/EdgeDescription.java | 196 + .../onap/aai/schemagen/genxsd/GetOperation.java | 121 + .../org/onap/aai/schemagen/genxsd/HTMLfromOXM.java | 283 + .../aai/schemagen/genxsd/NodeGetOperation.java | 164 + .../aai/schemagen/genxsd/NodesYAMLfromOXM.java | 527 + .../aai/schemagen/genxsd/OxmFileProcessor.java | 481 + .../onap/aai/schemagen/genxsd/PatchOperation.java | 113 + .../onap/aai/schemagen/genxsd/PutOperation.java | 118 + .../aai/schemagen/genxsd/PutRelationPathSet.java | 218 + .../org/onap/aai/schemagen/genxsd/XSDElement.java | 725 ++ .../org/onap/aai/schemagen/genxsd/XSDJavaType.java | 64 + .../org/onap/aai/schemagen/genxsd/YAMLfromOXM.java | 590 ++ .../java/org/onap/aai/schemagen/swagger/Api.java | 318 + .../org/onap/aai/schemagen/swagger/Definition.java | 198 + .../aai/schemagen/swagger/GenerateSwagger.java | 487 + aai-schema-gen/src/main/resources/swagger.html.ftl | 241 + .../org/onap/aai/schemagen/GenerateXsdTest.java | 148 + .../schemagen/genxsd/DeleteFootnoteSetTest.java | 83 + .../aai/schemagen/genxsd/DeleteOperationTest.java | 81 + .../aai/schemagen/genxsd/EdgeDescriptionTest.java | 348 + .../aai/schemagen/genxsd/GetOperationTest.java | 106 + .../onap/aai/schemagen/genxsd/HTMLfromOXMTest.java | 380 + .../aai/schemagen/genxsd/NodeGetOperationTest.java | 108 + .../aai/schemagen/genxsd/NodesYAMLfromOXMTest.java | 629 ++ .../aai/schemagen/genxsd/PatchOperationTest.java | 81 + .../aai/schemagen/genxsd/PutOperationTest.java | 83 + .../schemagen/genxsd/PutRelationPathSetTest.java | 257 + .../onap/aai/schemagen/genxsd/XSDElementTest.java | 623 ++ .../onap/aai/schemagen/genxsd/XSDJavaTypeTest.java | 101 + .../onap/aai/schemagen/genxsd/YAMLfromOXMTest.java | 937 ++ .../TestUtilConfigTranslatorforBusiness.java | 73 + .../TestUtilConfigTranslatorforDataLink.java | 59 + .../TestUtilConfigTranslatorforEdges.java | 73 + .../dbedgerules/DbEdgeBusinessRules_test.json | 39 + .../dbedgerules/DbEdgeRules_PrivateEdges.json | 77 + .../DbEdgeRules_TraversalQueryTest.json | 156 + .../resources/dbedgerules/DbEdgeRules_test.json | 251 + .../dbedgerules/DbEdgeRules_test_broken.json | 36 + .../resources/dbedgerules/DbEdgerules_four.json | 1808 ++++ .../resources/dbedgerules/DbEdgerules_one.json | 1313 +++ .../resources/dbedgerules/DbEdgerules_three.json | 1731 ++++ .../resources/dbedgerules/DbEdgerules_two.json | 1467 +++ .../resources/dbedgerules/defaultEdgesTest.json | 52 + .../src/test/resources/dbedgerules/test.json | 48 + .../src/test/resources/dbedgerules/test2.json | 27 + .../src/test/resources/dbedgerules/test3.json | 76 + .../src/test/resources/oxm/business_oxm_v11.xml | 106 + .../src/test/resources/oxm/business_oxm_v12.xml | 609 ++ .../src/test/resources/oxm/business_oxm_v13.xml | 609 ++ .../src/test/resources/oxm/business_v11.xml | 106 + .../src/test/resources/oxm/common_oxm_v13.xml | 188 + .../src/test/resources/oxm/dbalias_oxm_four.xml | 5514 ++++++++++ .../src/test/resources/oxm/dbalias_oxm_one.xml | 4237 ++++++++ .../src/test/resources/oxm/dbalias_oxm_three.xml | 5398 ++++++++++ .../src/test/resources/oxm/dbalias_oxm_two.xml | 4716 +++++++++ .../src/test/resources/oxm/network_oxm_v13.xml | 3412 +++++++ .../test/resources/oxm/serviceDesign_oxm_v13.xml | 538 + .../src/test/resources/schema-ingest.properties | 17 + aai-schema-service/pom.xml | 2 +- aai-schema/.gitignore | 2 + aai-schema/LICENSE.TXT | 17 + aai-schema/pom.xml | 150 + aai-schema/pom.xml.versionsBackup | 150 + .../resources/onap/aai_schema/aai_schema_v10.xsd | 6493 ++++++++++++ .../resources/onap/aai_schema/aai_schema_v11.xsd | 7668 ++++++++++++++ .../resources/onap/aai_schema/aai_schema_v12.xsd | 8169 +++++++++++++++ .../resources/onap/aai_schema/aai_schema_v13.xsd | 8246 +++++++++++++++ .../resources/onap/aai_schema/aai_schema_v14.xsd | 9917 ++++++++++++++++++ .../resources/onap/aai_schema/aai_schema_v15.xsd | 10140 +++++++++++++++++++ .../resources/onap/aai_schema/aai_schema_v8.xsd | 1918 ++++ .../resources/onap/aai_schema/aai_schema_v9.xsd | 6334 ++++++++++++ .../onap/dbedgerules/v10/DbEdgeRules_v10.json | 1808 ++++ .../onap/dbedgerules/v11/DbEdgeRules_esr_v11.json | 64 + .../onap/dbedgerules/v11/DbEdgeRules_v11.json | 2138 ++++ .../onap/dbedgerules/v12/DbEdgeRules_esr_v12.json | 64 + .../onap/dbedgerules/v12/DbEdgeRules_hpa_v12.json | 43 + .../onap/dbedgerules/v12/DbEdgeRules_v12.json | 2500 +++++ .../onap/dbedgerules/v13/DbEdgeRules_esr_v13.json | 64 + .../onap/dbedgerules/v13/DbEdgeRules_hpa_v13.json | 43 + .../onap/dbedgerules/v13/DbEdgeRules_v13.json | 2824 ++++++ .../dbedgerules/v14/DbEdgeRules_ccvpn_v14.json | 352 + .../onap/dbedgerules/v14/DbEdgeRules_esr_v14.json | 64 + .../onap/dbedgerules/v14/DbEdgeRules_hpa_v14.json | 68 + .../onap/dbedgerules/v14/DbEdgeRules_pnp_v14.json | 17 + .../onap/dbedgerules/v14/DbEdgeRules_v14.json | 3056 ++++++ .../dbedgerules/v15/DbEdgeRules_ccvpn_v15.json | 352 + .../onap/dbedgerules/v15/DbEdgeRules_esr_v15.json | 64 + .../onap/dbedgerules/v15/DbEdgeRules_hpa_v15.json | 68 + .../onap/dbedgerules/v15/DbEdgeRules_pnp_v15.json | 17 + .../onap/dbedgerules/v15/DbEdgeRules_v15.json | 3172 ++++++ .../onap/dbedgerules/v8/DbEdgeRules_v8.json | 1467 +++ .../onap/dbedgerules/v9/DbEdgeRules_v9.json | 1731 ++++ .../main/resources/onap/oxm/v10/aai_oxm_v10.xml | 5585 ++++++++++ .../main/resources/onap/oxm/v11/aai_oxm_v11.xml | 6564 ++++++++++++ .../main/resources/onap/oxm/v12/aai_oxm_v12.xml | 6987 +++++++++++++ .../main/resources/onap/oxm/v13/aai_oxm_v13.xml | 7060 +++++++++++++ .../main/resources/onap/oxm/v14/aai_oxm_v14.xml | 8484 ++++++++++++++++ .../main/resources/onap/oxm/v15/aai_oxm_v15.xml | 8673 ++++++++++++++++ .../src/main/resources/onap/oxm/v8/aai_oxm_v8.xml | 4778 +++++++++ .../src/main/resources/onap/oxm/v9/aai_oxm_v9.xml | 5469 ++++++++++ aai-schema/src/main/xjb/bindings-onap.xjb | 50 + .../java/org/onap/aai/schema/ValidateOXMTest.java | 160 + pom.xml | 3 + 120 files changed, 176558 insertions(+), 1 deletion(-) create mode 100644 aai-annotations/.gitignore create mode 100644 aai-annotations/LICENSE.TXT create mode 100644 aai-annotations/pom.xml create mode 100644 aai-annotations/pom.xml.versionsBackup create mode 100644 aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java create mode 100644 aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java create mode 100644 aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java create mode 100644 aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java create mode 100644 aai-schema-gen/pom.xml create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java create mode 100644 aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java create mode 100644 aai-schema-gen/src/main/resources/swagger.html.ftl create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/GenerateXsdTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSetTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteOperationTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/EdgeDescriptionTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/GetOperationTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/HTMLfromOXMTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodeGetOperationTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PatchOperationTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutOperationTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutRelationPathSetTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDJavaTypeTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforBusiness.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforDataLink.java create mode 100644 aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforEdges.java create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_PrivateEdges.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_TraversalQueryTest.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test_broken.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_four.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_one.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_three.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_two.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/defaultEdgesTest.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/test.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/test2.json create mode 100644 aai-schema-gen/src/test/resources/dbedgerules/test3.json create mode 100644 aai-schema-gen/src/test/resources/oxm/business_oxm_v11.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/business_oxm_v12.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/business_oxm_v13.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/business_v11.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/common_oxm_v13.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/dbalias_oxm_four.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/dbalias_oxm_one.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/dbalias_oxm_three.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/dbalias_oxm_two.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/network_oxm_v13.xml create mode 100644 aai-schema-gen/src/test/resources/oxm/serviceDesign_oxm_v13.xml create mode 100644 aai-schema-gen/src/test/resources/schema-ingest.properties create mode 100644 aai-schema/.gitignore create mode 100644 aai-schema/LICENSE.TXT create mode 100644 aai-schema/pom.xml create mode 100644 aai-schema/pom.xml.versionsBackup create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v10.xsd create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v11.xsd create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v12.xsd create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v13.xsd create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v14.xsd create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v15.xsd create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v8.xsd create mode 100644 aai-schema/src/main/resources/onap/aai_schema/aai_schema_v9.xsd create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v10/DbEdgeRules_v10.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_esr_v11.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_v11.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_esr_v12.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_hpa_v12.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_v12.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_esr_v13.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_hpa_v13.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_v13.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_esr_v14.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_hpa_v14.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_pnp_v14.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_v14.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_ccvpn_v15.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_esr_v15.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_hpa_v15.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_pnp_v15.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_v15.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v8/DbEdgeRules_v8.json create mode 100644 aai-schema/src/main/resources/onap/dbedgerules/v9/DbEdgeRules_v9.json create mode 100644 aai-schema/src/main/resources/onap/oxm/v10/aai_oxm_v10.xml create mode 100644 aai-schema/src/main/resources/onap/oxm/v11/aai_oxm_v11.xml create mode 100644 aai-schema/src/main/resources/onap/oxm/v12/aai_oxm_v12.xml create mode 100644 aai-schema/src/main/resources/onap/oxm/v13/aai_oxm_v13.xml create mode 100644 aai-schema/src/main/resources/onap/oxm/v14/aai_oxm_v14.xml create mode 100644 aai-schema/src/main/resources/onap/oxm/v15/aai_oxm_v15.xml create mode 100644 aai-schema/src/main/resources/onap/oxm/v8/aai_oxm_v8.xml create mode 100644 aai-schema/src/main/resources/onap/oxm/v9/aai_oxm_v9.xml create mode 100644 aai-schema/src/main/xjb/bindings-onap.xjb create mode 100644 aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java diff --git a/aai-annotations/.gitignore b/aai-annotations/.gitignore new file mode 100644 index 0000000..2f30844 --- /dev/null +++ b/aai-annotations/.gitignore @@ -0,0 +1,2 @@ +/bin/ +/.checkstyle diff --git a/aai-annotations/LICENSE.TXT b/aai-annotations/LICENSE.TXT new file mode 100644 index 0000000..3455862 --- /dev/null +++ b/aai-annotations/LICENSE.TXT @@ -0,0 +1,17 @@ +============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========================================================= diff --git a/aai-annotations/pom.xml b/aai-annotations/pom.xml new file mode 100644 index 0000000..178a51d --- /dev/null +++ b/aai-annotations/pom.xml @@ -0,0 +1,78 @@ + + + + 4.0.0 + + org.onap.aai.schema-service + schema-service + 1.0.0-SNAPSHOT + + aai-annotations + aai-annotations + jar + 1.0.0-SNAPSHOT + + https://nexus.onap.org + + + + junit + junit + 3.8.1 + test + + + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + + + org.sonatype.plugins + nexus-staging-maven-plugin + + + + + + + + central + http://repo1.maven.org/maven2 + + + EvoSuite + EvoSuite Repository + http://www.evosuite.org/m2 + + + + diff --git a/aai-annotations/pom.xml.versionsBackup b/aai-annotations/pom.xml.versionsBackup new file mode 100644 index 0000000..1e03e0e --- /dev/null +++ b/aai-annotations/pom.xml.versionsBackup @@ -0,0 +1,78 @@ + + + + 4.0.0 + + org.onap.aai.aai-common + aai-common + 1.3.1-SNAPSHOT + + aai-annotations + aai-annotations + jar + 1.3.1-SNAPSHOT + + https://nexus.onap.org + + + + junit + junit + 3.8.1 + test + + + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + + + org.sonatype.plugins + nexus-staging-maven-plugin + + + + + + + + central + http://repo1.maven.org/maven2 + + + EvoSuite + EvoSuite Repository + http://www.evosuite.org/m2 + + + + diff --git a/aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java b/aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java new file mode 100644 index 0000000..d9e9f0f --- /dev/null +++ b/aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java @@ -0,0 +1,56 @@ +/** + * ============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.annotations; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +@Retention(RUNTIME) +@Target({ElementType.METHOD, ElementType.TYPE, ElementType.FIELD}) +public @interface Metadata { + + boolean isKey() default false; + String description() default ""; + String nameProps() default ""; + String indexedProps() default ""; + String dependentOn() default ""; + String container() default ""; + String namespace() default ""; + String defaultValue() default ""; + String searchable() default ""; + String uniqueProps() default ""; + String requiredProps() default ""; + String uriTemplate() default ""; + String extendsFrom() default ""; + String isAbstract() default ""; + String alternateKeys1() default ""; + String maximumDepth() default ""; + String crossEntityReference() default ""; + String requires() default ""; + String dbAlias() default ""; + String dataLocation() default ""; + String containsSuggestibleProps() default ""; + String suggestionAliases() default ""; + String sourceOfTruthType() default ""; + +} diff --git a/aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java b/aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java new file mode 100644 index 0000000..39cfdec --- /dev/null +++ b/aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java @@ -0,0 +1,132 @@ +/** + * ============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.schema.enums; + +public enum ObjectMetadata { + + /** + * description of object + */ + DESCRIPTION("description"), + /** + * names of properties to appear in relationship-lists + * and parent objects in DMaaP messages + *
comma separated list + */ + NAME_PROPS("nameProps"), + /** + * names of properties to be indexed in the + * db schema + *
comma separated list + */ + INDEXED_PROPS("indexedProps"), + /** + * name of the object this one depends on + */ + DEPENDENT_ON("dependentOn"), + /** + * name of the object which contains this object + */ + CONTAINER("container"), + /** + * the top level namespace to which this object belongs
+ * only valid on top level objects + */ + NAMESPACE("namespace"), + /** + * properties which are searchable via the GUI + *
comma separated list + */ + SEARCHABLE("searchable"), + /** + * properties marked as unique in the db schema + *
comma separated list + */ + UNIQUE_PROPS("uniqueProps"), + /** + * properties marked as required + *
comma separated list + */ + REQUIRED_PROPS("requiredProps"), + /** + * uri template for this object + */ + URI_TEMPLATE("uriTemplate"), + /** + * abstract type from which this object extends + */ + EXTENDS("extends"), + /** + * comma separated list of objects who inherit this object
+ * only valid on abstract objects + */ + INHERITORS("inheritors"), + /** + * a value of true marks this object as abstract + * abstract objects cannot be read/written directly + * they resolve to "or queries" when used in queries + */ + ABSTRACT("abstract"), + /** + * comma separated list of properties which are alternate ways + * to identify this object + */ + ALTERNATE_KEYS_1("alternateKeys1"), + /** + * the maximum allowable retrievable depth + */ + MAXIMUM_DEPTH("maximumDepth"), + /** + * collection of other objects to retrieve along with this one + *
comma separated list + */ + CROSS_ENTITY_REFERENCE("crossEntityReference"), + /** + * Marks that this object can be linked to via dataLink + */ + CAN_BE_LINKED("canBeLinked"), + /** + * The entity contains properties that are suggestible + */ + CONTAINS_SUGGESTIBLE_PROPS("containsSuggestibleProps"), + /** + * A list of aliases for the entity name (for AAI UI searches) + */ + SUGGESTION_ALIASES("suggestionAliases"), + /** + * a value of true allows this object to be read directly + */ + ALLOW_DIRECT_READ("allowDirectRead"), + /** + * a value of true allows this object to be written directly + */ + ALLOW_DIRECT_WRITE("allowDirectWrite"); + + private final String name; + + private ObjectMetadata(String name) { + this.name = name; + } + + @Override public String toString() { + return name; + } + +} diff --git a/aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java b/aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java new file mode 100644 index 0000000..ac2c00b --- /dev/null +++ b/aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java @@ -0,0 +1,84 @@ +/** + * ============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.schema.enums; + +public enum PropertyMetadata { + + /** + * description of property + */ + DESCRIPTION("description"), + /** + * default value of property + */ + DEFAULT_VALUE("defaultValue"), + /** + * sets the property name used when writing to the db + */ + DB_ALIAS("dbAlias"), + /** + * a URI which describes the location of a value to be + * written on a PUT + */ + DATA_COPY("dataCopy"), + /** + * a URI which describes another object which backs this value + */ + DATA_LINK("dataLink"), + /** + * controls the visibility of a field based on context + */ + VISIBILITY("visibility"), + /** + * specifies a field which must be populated to pass validation + */ + REQUIRES("requires"), + /** + * automatically creates an id for the property if not specified + */ + AUTO_GENERATE_UUID("autoGenerateUuid"), + /** + * Property is used for VNF searches in AAI UI + */ + SUGGESTIBLE_ON_SEARCH("suggestibleOnSearch"), + /** + * An identifier that indicates which system is the master of this property data + */ + SOURCE_OF_TRUTH_TYPE("sourceOfTruthType"), + /** + * makes property read only by version + */ + READ_ONLY("readOnly"), + /** + * Add a private edge between two objects based on the uri provided by user which should provide + * the appropriate information from the url similar to dataCopy + */ + PRIVATE_EDGE("privateEdge"); + + private final String name; + + private PropertyMetadata(String name) { + this.name = name; + } + + @Override public String toString() { + return name; + } +} diff --git a/aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java b/aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java new file mode 100644 index 0000000..a518e0c --- /dev/null +++ b/aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java @@ -0,0 +1,48 @@ +/** + * ============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.annotations; + +import org.onap.aai.annotations.Metadata; + +public class AnnotationsTest { + + public AnnotationsTest() { + } + + @Metadata(isKey = false, + description = "", + nameProps = "", + indexedProps = "", + dependentOn = "", + container = "", + namespace = "", + defaultValue = "", + searchable = "", + uniqueProps = "", + requiredProps = "", + uriTemplate = "", + extendsFrom = "", + isAbstract = "", + alternateKeys1 = "", + maximumDepth = "", + crossEntityReference = "") + public void testAnnotation() { + } +} diff --git a/aai-schema-gen/pom.xml b/aai-schema-gen/pom.xml new file mode 100644 index 0000000..47179d9 --- /dev/null +++ b/aai-schema-gen/pom.xml @@ -0,0 +1,705 @@ + + + + 4.0.0 + + org.onap.aai.schema-service + schema-service + 1.0.0-SNAPSHOT + + aai-schema-gen + aai-schema-gen + 1.0.0-SNAPSHOT + + https://nexus.onap.org + + https://wiki.onap.org/ + v15 + onap + /aai + 5000 + N/A + aai-schema/src/main/resources/${aai.release}/oxm + aai-schema/src/main/resources/${aai.release}/dbedgerules + v10 + v10 + v11 + v12 + v12 + v15 + v10,v11,v12,v13,v14,v15 + + + + + + onap + + onap + unbounded + N/A + aai-schema/src/main/resources/${aai.release}/oxm + aai-schema/src/main/resources/${aai.release}/dbedgerules + v10 + v10 + v11 + v12 + v12 + v15 + v10,v11,v12,v13,v14,v15 + v15 + + + + + generateXsd + + + + org.codehaus.mojo + exec-maven-plugin + 1.1.1 + + + process-classes + + java + + + org.onap.aai.schemagen.GenerateXsd + + + gen_version + ${gendoc.version} + + + gen_type + XSD + + + schema.xsd.maxoccurs + ${schema.xsd.maxoccurs} + + + yamlresponses_url + + + + yamlresponses_label + + + + schema.configuration.location + ${schema.configuration.location} + + + schema.nodes.location + ${schema.nodes.location} + + + schema.edges.location + ${schema.edges.location} + + + schema.version.list + ${schema.version.list} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.related.link.start + ${schema.version.related.link.start} + + + schema.version.app.root.start + ${schema.version.app.root.start} + + + schema.version.edge.label.start + ${schema.version.app.root.start} + + + schema.version.namespace.change.start + ${schema.version.namespace.change.start} + + + schema.version.api.default + ${schema.version.api.default} + + + schema.uri.base.path + ${schema.uri.base.path} + + + aai.release + ${aai.release} + + + + + + + + + + + generateYaml + + + + org.codehaus.mojo + exec-maven-plugin + 1.1.1 + + + process-classes + + java + + + org.onap.aai.schemagen.GenerateXsd + + + gen_version + ${gendoc.version} + + + gen_type + YAML + + + yamlresponses_url + https://wiki.web.att.com/pages/viewpage.action?pageId=607391054 + + + + yamlresponses_label + Response codes found in [response codes] + + + schema.configuration.location + ${schema.configuration.location} + + + schema.nodes.location + ${schema.nodes.location} + + + schema.edges.location + ${schema.edges.location} + + + schema.version.list + ${schema.version.list} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.related.link.start + ${schema.version.related.link.start} + + + schema.version.app.root.start + ${schema.version.app.root.start} + + + schema.version.edge.label.start + ${schema.version.app.root.start} + + + schema.version.namespace.change.start + ${schema.version.namespace.change.start} + + + schema.version.api.default + ${schema.version.api.default} + + + schema.uri.base.path + ${schema.uri.base.path} + + + aai.release + ${aai.release} + + + + + + + + + + + generateHtml + + + + org.codehaus.mojo + exec-maven-plugin + 1.1.1 + + + process-classes + + java + + + org.onap.aai.schemagen.swagger.GenerateSwagger + + + aai.generate.version + ${gendoc.version} + + + aai.wiki.link + ${aai.wiki.link} + + + schema.configuration.location + ${schema.configuration.location} + + + schema.nodes.location + ${schema.nodes.location} + + + schema.edges.location + ${schema.edges.location} + + + schema.version.list + ${schema.version.list} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.related.link.start + ${schema.version.related.link.start} + + + schema.version.app.root.start + ${schema.version.app.root.start} + + + schema.version.edge.label.start + ${schema.version.app.root.start} + + + schema.version.namespace.change.start + ${schema.version.namespace.change.start} + + + schema.version.api.default + ${schema.version.api.default} + + + schema.uri.base.path + ${schema.uri.base.path} + + + aai.release + ${aai.release} + + + + + + + + + + + autoGenerate + + + aai.generate.schema + !false + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.1.1 + + + autoGenerateXsd + process-classes + + java + + + org.onap.aai.schemagen.GenerateXsd + + + gen_version + ALL + + + gen_type + XSD + + + schema.xsd.maxoccurs + ${schema.xsd.maxoccurs} + + + yamlresponses_url + + + + yamlresponses_label + + + + schema.configuration.location + ${schema.configuration.location} + + + schema.nodes.location + ${schema.nodes.location} + + + schema.edges.location + ${schema.edges.location} + + + schema.version.list + ${schema.version.list} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.related.link.start + ${schema.version.related.link.start} + + + schema.version.app.root.start + ${schema.version.app.root.start} + + + schema.version.edge.label.start + ${schema.version.app.root.start} + + + schema.version.namespace.change.start + ${schema.version.namespace.change.start} + + + schema.version.api.default + ${schema.version.api.default} + + + schema.uri.base.path + ${schema.uri.base.path} + + + aai.release + ${aai.release} + + + + + + autoGenerateYaml + process-classes + + java + + + org.onap.aai.schemagen.GenerateXsd + + + gen_version + ALL + + + gen_type + YAML + + + yamlresponses_url + https://wiki.web.att.com/pages/viewpage.action?pageId=607391054 + + + + yamlresponses_label + Response codes found in [response codes] + + + schema.configuration.location + ${schema.configuration.location} + + + schema.nodes.location + ${schema.nodes.location} + + + schema.edges.location + ${schema.edges.location} + + + schema.version.list + ${schema.version.list} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.related.link.start + ${schema.version.related.link.start} + + + schema.version.app.root.start + ${schema.version.app.root.start} + + + schema.version.edge.label.start + ${schema.version.app.root.start} + + + schema.version.namespace.change.start + ${schema.version.namespace.change.start} + + + schema.version.api.default + ${schema.version.api.default} + + + aai.release + ${aai.release} + + + + + + autoGenerateHtml + process-classes + + java + + + org.onap.aai.schemagen.AutoGenerateHtml + + + aai.generate.version + ${gendoc.version} + + + aai.wiki.link + ${aai.wiki.link} + + + schema.configuration.location + ${schema.configuration.location} + + + schema.nodes.location + ${schema.nodes.location} + + + schema.edges.location + ${schema.edges.location} + + + schema.version.list + ${schema.version.list} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.depth.start + ${schema.version.depth.start} + + + schema.version.related.link.start + ${schema.version.related.link.start} + + + schema.version.app.root.start + ${schema.version.app.root.start} + + + schema.version.edge.label.start + ${schema.version.app.root.start} + + + schema.version.namespace.change.start + ${schema.version.namespace.change.start} + + + schema.version.api.default + ${schema.version.api.default} + + + aai.release + ${aai.release} + + + + + + + + + + + + + junit + junit + 4.12 + test + + + org.yaml + snakeyaml + 1.18 + compile + + + org.onap.aai.aai-common + aai-schema-ingest + 1.4.0 + compile + + + org.freemarker + freemarker + 2.3.21 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + 2.2.3 + + + org.apache.commons + commons-lang3 + 3.7 + compile + + + org.apache.commons + commons-text + 1.2 + compile + + + org.hamcrest + java-hamcrest + 2.0.0.0 + test + + + org.hamcrest + hamcrest-core + 1.3 + test + + + org.mockito + mockito-all + 1.10.19 + test + + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-site-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + + + org.sonatype.plugins + nexus-staging-maven-plugin + + + + + src/main/resources + false + + **/* + + + + + + + + + central + http://repo1.maven.org/maven2 + + + EvoSuite + EvoSuite Repository + http://www.evosuite.org/m2 + + + + diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java new file mode 100644 index 0000000..85ecfad --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java @@ -0,0 +1,79 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2018 IBM. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.aai.schemagen; + +import freemarker.template.TemplateException; +import org.onap.aai.schemagen.swagger.GenerateSwagger; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +import java.io.File; +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.ListIterator; + +public class AutoGenerateHtml { + + private static final String AAI_GENERATE_VERSION = "aai.generate.version"; + public static final String DEFAULT_SCHEMA_DIR = "../aai-schema"; + //if the program is run from aai-common, use this directory as default" + public static final String ALT_SCHEMA_DIR = "aai-schema"; + //used to check to see if program is run from aai-schema-gen + public static final String DEFAULT_RUN_DIR = "aai-schema-gen"; + + public static void main(String[] args) throws IOException, TemplateException { + String savedProperty = System.getProperty(AAI_GENERATE_VERSION); + + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( + "org.onap.aai.setup", + "org.onap.aai.schemagen" + ); + + + SchemaVersions schemaVersions = ctx.getBean(SchemaVersions.class); + + List versionsToGen = schemaVersions.getVersions(); + Collections.sort(versionsToGen); + Collections.reverse(versionsToGen); + ListIterator versionIterator = versionsToGen.listIterator(); + String schemaDir; + if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { + schemaDir = ALT_SCHEMA_DIR; + } + else { + schemaDir = DEFAULT_SCHEMA_DIR; + } + String release = System.getProperty("aai.release", "onap"); + while (versionIterator.hasNext()) { + System.setProperty(AAI_GENERATE_VERSION, versionIterator.next().toString()); + String yamlFile = schemaDir + "/src/main/resources/" + release + "/aai_swagger_yaml/aai_swagger_" + System.getProperty(AAI_GENERATE_VERSION)+ ".yaml"; + File swaggerYamlFile = new File(yamlFile); + if(swaggerYamlFile.exists()) { + GenerateSwagger.schemaVersions = schemaVersions; + GenerateSwagger.main(args); + } + } + System.setProperty(AAI_GENERATE_VERSION, savedProperty); + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java new file mode 100644 index 0000000..227df63 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java @@ -0,0 +1,318 @@ +/** + * ============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.schemagen; + + +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.onap.aai.schemagen.genxsd.HTMLfromOXM; +import org.onap.aai.schemagen.genxsd.NodesYAMLfromOXM; +import org.onap.aai.schemagen.genxsd.YAMLfromOXM; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.w3c.dom.NodeList; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + +public class GenerateXsd { + + private static final Logger logger = LoggerFactory.getLogger("GenerateXsd.class"); + protected static String apiVersion = null; + public static AnnotationConfigApplicationContext ctx = null; + static String apiVersionFmt = null; + static boolean useAnnotationsInXsd = false; + static String responsesUrl = null; + static String responsesLabel = null; + static String jsonEdges = null; + static Map generatedJavaType; + static Map appliedPaths; + static String RELEASE = System.getProperty("aai.release", "onap"); + + + static NodeList javaTypeNodes; + static Map javaTypeDefinitions = createJavaTypeDefinitions(); + private static Map createJavaTypeDefinitions() + { + StringBuffer aaiInternal = new StringBuffer(); + Map javaTypeDefinitions = new HashMap(); + aaiInternal.append(" aai-internal:\n"); + aaiInternal.append(" properties:\n"); + aaiInternal.append(" property-name:\n"); + aaiInternal.append(" type: string\n"); + aaiInternal.append(" property-value:\n"); + aaiInternal.append(" type: string\n"); +// javaTypeDefinitions.put("aai-internal", aaiInternal.toString()); + return javaTypeDefinitions; + } + + public static final int VALUE_NONE = 0; + public static final int VALUE_DESCRIPTION = 1; + public static final int VALUE_INDEXED_PROPS = 2; + public static final int VALUE_CONTAINER = 3; + + private static final String generateTypeXSD = "xsd"; + private static final String generateTypeYAML = "yaml"; + + private final static String nodeDir = System.getProperty("nodes.configuration.location"); + private final static String edgeDir = System.getProperty("edges.configuration.location"); + private static final String baseRoot = "aai-schema/"; + private static final String baseAutoGenRoot = "aai-schema/"; + + private static final String root = baseRoot + "src/main/resources"; + private static final String autoGenRoot = baseAutoGenRoot + "src/main/resources"; + + private static final String normalStartDir = "aai-schema-gen"; + private static final String xsd_dir = root + "/" + RELEASE +"/aai_schema"; + + private static final String yaml_dir = (((System.getProperty("user.dir") != null) && (!System.getProperty("user.dir").contains(normalStartDir))) ? autoGenRoot : root) + "/" + RELEASE + "/aai_swagger_yaml"; + + /* These three strings are for yaml auto-generation from aai-common class*/ + + private static int swaggerSupportStartsVersion = 1; // minimum version to support swagger documentation + + + private static boolean validVersion(String versionToGen) { + + if ("ALL".equalsIgnoreCase(versionToGen)) { + return true; + } + + SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class); + for (SchemaVersion v : schemaVersions.getVersions()) { + if (v.equals(versionToGen)) { + return true; + } + } + + return false; + } + + private static boolean versionSupportsSwagger( String version) { + if (new Integer(version.substring(1)).intValue() >= swaggerSupportStartsVersion ) { + return true; + } + return false; + } + + public static String getAPIVersion() { + return apiVersion; + } + + public static String getYamlDir() { + return yaml_dir; + } + + public static String getResponsesUrl() { + return responsesUrl; + } + public static void main(String[] args) throws IOException { + String versionToGen = System.getProperty("gen_version").toLowerCase(); + String fileTypeToGen = System.getProperty("gen_type").toLowerCase(); + + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( + "org.onap.aai.setup", + "org.onap.aai.schemagen" + ); + + SchemaVersions schemaVersions = ctx.getBean(SchemaVersions.class); + + if ( fileTypeToGen == null ) { + fileTypeToGen = generateTypeXSD; + } + + if ( !fileTypeToGen.equals( generateTypeXSD ) && !fileTypeToGen.equals( generateTypeYAML )) { + System.err.println("Invalid gen_type passed. " + fileTypeToGen); + System.exit(1); + } + + String responsesLabel = System.getProperty("yamlresponses_url"); + responsesUrl = responsesLabel; + + List versionsToGen = new ArrayList<>(); + if ( versionToGen == null ) { + System.err.println("Version is required, ie v or ALL."); + System.exit(1); + } + else if (!"ALL".equalsIgnoreCase(versionToGen) && !versionToGen.matches("v\\d+") && !validVersion(versionToGen)) { + System.err.println("Invalid version passed. " + versionToGen); + System.exit(1); + } + else if ("ALL".equalsIgnoreCase(versionToGen)) { + versionsToGen = schemaVersions.getVersions(); + Collections.sort(versionsToGen); + Collections.reverse(versionsToGen); + } else { + versionsToGen.add(new SchemaVersion(versionToGen)); + } + + //process file type System property + fileTypeToGen = (fileTypeToGen == null ? generateTypeXSD : fileTypeToGen.toLowerCase()); + if ( !fileTypeToGen.equals( generateTypeXSD ) && !fileTypeToGen.equals( generateTypeYAML )) { + System.err.println("Invalid gen_type passed. " + fileTypeToGen); + System.exit(1); + } else if ( fileTypeToGen.equals(generateTypeYAML) ) { + if ( responsesUrl == null || responsesUrl.length() < 1 + || responsesLabel == null || responsesLabel.length() < 1 ) { + System.err.println("generating swagger yaml file requires yamlresponses_url and yamlresponses_label properties" ); + System.exit(1); + } else { + responsesUrl = "description: "+ "Response codes found in [response codes]("+responsesLabel+ ").\n"; + } + } + /* + * TODO: Oxm Path is config driveb + */ + String oxmPath; + if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(normalStartDir)) { + oxmPath = baseAutoGenRoot + nodeDir; + } + else { + oxmPath = baseRoot + nodeDir; + } + + String outfileName = null; + File outfile; + String nodesfileName = null; + File nodesfile; + String fileContent = null; + String nodesContent = null; + + + for (SchemaVersion v : versionsToGen) { + apiVersion = v.toString(); + logger.debug("YAMLdir = "+yaml_dir); + logger.debug("Generating " + apiVersion + " " + fileTypeToGen); + apiVersionFmt = "." + apiVersion + "."; + generatedJavaType = new HashMap(); + appliedPaths = new HashMap(); + File edgeRuleFile = null; + String fileName = edgeDir + "DbEdgeRules_" + apiVersion + ".json"; + logger.debug("user.dir = "+System.getProperty("user.dir")); + if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(normalStartDir)) { + fileName = baseAutoGenRoot + fileName; + + } + else { + fileName = baseRoot + fileName; + + } + edgeRuleFile = new File( fileName); +// Document doc = ni.getSchema(translateVersion(v)); + + if ( fileTypeToGen.equals(generateTypeXSD) ) { + outfileName = xsd_dir + "/aai_schema_" + apiVersion + "." + generateTypeXSD; + try { + HTMLfromOXM swagger = ctx.getBean(HTMLfromOXM.class); + swagger.setVersion(v); + fileContent = swagger.process(); + if ( fileContent.startsWith("Schema format issue")) { + throw new Exception(fileContent); + } + } catch(Exception e) { + logger.error( "Exception creating output file " + outfileName); + logger.error( e.getMessage()); + e.printStackTrace(); + System.exit(-1); + } + } else if ( versionSupportsSwagger(apiVersion )) { + outfileName = yaml_dir + "/aai_swagger_" + apiVersion + "." + generateTypeYAML; + nodesfileName = yaml_dir + "/aai_swagger_" + apiVersion + "." + "nodes"+"."+generateTypeYAML; + try { + YAMLfromOXM swagger = (YAMLfromOXM) ctx.getBean(YAMLfromOXM.class); + swagger.setVersion(v); + fileContent = swagger.process(); + Map combinedJavaTypes = swagger.getCombinedJavaTypes(); + NodesYAMLfromOXM nodesSwagger = ctx.getBean(NodesYAMLfromOXM.class); + nodesSwagger.setVersion(v); + nodesSwagger.setCombinedJavaTypes(combinedJavaTypes); + nodesContent = nodesSwagger.process(); + } catch(Exception e) { + logger.error( "Exception creating output file " + outfileName); + e.printStackTrace(); + } + } else { + continue; + } + outfile = new File(outfileName); + File parentDir = outfile.getParentFile(); + if(! parentDir.exists()) + parentDir.mkdirs(); + if(nodesfileName != null) { + BufferedWriter nodesBW = null; + nodesfile = new File(nodesfileName); + parentDir = nodesfile.getParentFile(); + if(! parentDir.exists()) + parentDir.mkdirs(); + try { + nodesfile.createNewFile(); + } catch (IOException e) { + logger.error( "Exception creating output file " + nodesfileName); + e.printStackTrace(); + } + try { + Charset charset = Charset.forName("UTF-8"); + Path path = Paths.get(nodesfileName); + nodesBW = Files.newBufferedWriter(path, charset); + nodesBW.write(nodesContent); + } catch ( IOException e) { + logger.error( "Exception writing output file " + outfileName); + e.printStackTrace(); + } finally { + if ( nodesBW != null ) { + nodesBW.close(); + } + } + } + + try { + outfile.createNewFile(); + } catch (IOException e) { + logger.error( "Exception creating output file " + outfileName); + e.printStackTrace(); + } + BufferedWriter bw = null; + try { + Charset charset = Charset.forName("UTF-8"); + Path path = Paths.get(outfileName); + bw = Files.newBufferedWriter(path, charset); + bw.write(fileContent); + } catch ( IOException e) { + logger.error( "Exception writing output file " + outfileName); + e.printStackTrace(); + } finally { + if ( bw != null ) { + bw.close(); + } + } + logger.debug( "GeneratedXSD successful, saved in " + outfileName); + } + + } + +} + diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java new file mode 100644 index 0000000..26ff4b6 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java @@ -0,0 +1,50 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2018 IBM. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.aai.schemagen; + +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.setup.AAIConfigTranslator; +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersions; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SchemaConfiguration { + + @Bean + public EdgeIngestor edgeIngestor(SchemaLocationsBean schemaLocationsBean, SchemaVersions schemaVersions){ + return new EdgeIngestor(configTranslator(schemaLocationsBean, schemaVersions), schemaVersions); + } + + @Bean(name = "nodeIngestor") + public NodeIngestor nodeIngestor(ConfigTranslator configTranslator) { + return new NodeIngestor(configTranslator); + } + + @Bean(name = "configTranslator") + public ConfigTranslator configTranslator(SchemaLocationsBean schemaLocationsBean, SchemaVersions schemaVersions) { + return new AAIConfigTranslator(schemaLocationsBean, schemaVersions); + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java new file mode 100644 index 0000000..48cd46d --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java @@ -0,0 +1,64 @@ +/** + * ============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.schemagen; + + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class SpringContextAware implements ApplicationContextAware { + + private static ApplicationContext context = null; + + public static ApplicationContext getApplicationContext() { + return context; + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + context = applicationContext; + } + + + public static T getBean(String beanName, Class requiredType) { + if(context != null){ + return context.getBean(beanName, requiredType); + } + return null; + } + + public static T getBean(Class clazz){ + if(context != null){ + return context.getBean(clazz); + } + return null; + } + + public static Object getBean(String bean){ + if(context != null){ + return context.getBean(bean); + } + return null; + } + +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java new file mode 100644 index 0000000..e479328 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java @@ -0,0 +1,64 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2018 IBM. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.aai.schemagen; + + +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.setup.SchemaVersions; +import org.onap.aai.schemagen.genxsd.HTMLfromOXM; +import org.onap.aai.schemagen.genxsd.NodesYAMLfromOXM; +import org.onap.aai.schemagen.genxsd.YAMLfromOXM; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Scope; + +@Configuration +public class SwaggerGenerationConfiguration { + + @Value("${schema.uri.base.path}") + private String basePath; + + @Value("${schema.xsd.maxoccurs:5000}") + private String maxOccurs; + + @Bean + @Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public NodesYAMLfromOXM nodesYamlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, EdgeIngestor edgeIngestor) { + return new NodesYAMLfromOXM(basePath, schemaVersions, nodeIngestor, edgeIngestor); + } + + @Bean + @Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public HTMLfromOXM htmlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, EdgeIngestor edgeIngestor) { + return new HTMLfromOXM(maxOccurs, schemaVersions, nodeIngestor, edgeIngestor); + } + + @Bean + @Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public YAMLfromOXM yamlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, EdgeIngestor edgeIngestor) { + return new YAMLfromOXM(basePath, schemaVersions, nodeIngestor, edgeIngestor); + } + +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java new file mode 100644 index 0000000..217aa4e --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java @@ -0,0 +1,81 @@ +/** + * ============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.schemagen.genxsd; + +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; + +import java.io.File; +import java.io.FilenameFilter; +import java.util.*; + +public class ConfigTranslatorForDocs extends ConfigTranslator { + + public ConfigTranslatorForDocs(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + } + + @Override + public Map> getNodeFiles() { + List versionsToGen = new ArrayList<>(); + versionsToGen = schemaVersions.getVersions(); + Collections.sort(versionsToGen); + Collections.reverse(versionsToGen); + Map> mp = new TreeMap<>(); + for (SchemaVersion v : versionsToGen) { + File dir = new File(bean.getNodeDirectory() + File.separator + v.toString().toLowerCase()); + File [] fileSet = dir.listFiles(); + List files = new ArrayList<>(); + for(File f: fileSet ) { + files.add(f.getAbsolutePath()); + } + + mp.put(v, files); + } + return mp; + } + + @Override + public Map> getEdgeFiles() { + List versionsToGen = new ArrayList<>(); + versionsToGen = schemaVersions.getVersions(); + Collections.sort(versionsToGen); + Collections.reverse(versionsToGen); + Map> mp = new TreeMap<>(); + for (SchemaVersion v : versionsToGen) { + File dir = new File(bean.getEdgeDirectory()); + File [] fileSet = dir.listFiles(new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + return name.contains("_"+v.toString().toLowerCase()); + } + }); + List files = new ArrayList<>(); + for(File f: fileSet ) { + files.add(f.getAbsolutePath()); + } + mp.put(v, files); + } + return mp; + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java new file mode 100644 index 0000000..7efaed9 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java @@ -0,0 +1,57 @@ +/** + * ============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.schemagen.genxsd; + +import java.util.Set; +import java.util.TreeSet; + +public class DeleteFootnoteSet { + protected Set footnotes = new TreeSet<>(); + protected String targetNode = ""; + public DeleteFootnoteSet(String targetNode) { + super(); + this.targetNode = targetNode == null ? "" : targetNode; + } + + public void add(String s ) { + String fullnote=null; + if("(1)".equals(s)) { + fullnote = s+" IF this "+targetNode.toUpperCase()+" node is deleted, this FROM node is DELETED also"; + } else if("(2)".equals(s)) { + fullnote = s+" IF this "+targetNode.toUpperCase()+" node is deleted, this TO node is DELETED also"; + } else if("(3)".equals(s)) { + fullnote = s+" IF this FROM node is deleted, this "+targetNode.toUpperCase()+" is DELETED also"; + } else if("(4)".equals(s)) { + fullnote = s+" IF this TO node is deleted, this "+targetNode.toUpperCase()+" is DELETED also"; + } else if(s.contains(targetNode.toUpperCase())) { + fullnote = s; + } else { + return; + } + footnotes.add(fullnote); + } + + public String toString() { + StringBuilder sb = new StringBuilder(); + if(footnotes.size() > 0) sb.append("\n -"); + sb.append(String.join("\n -", footnotes)+"\n"); + return sb.toString(); + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java new file mode 100644 index 0000000..e1d993f --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java @@ -0,0 +1,106 @@ +/** + * ============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.schemagen.genxsd; + +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.schemagen.GenerateXsd; + +import java.util.HashMap; +import java.util.StringTokenizer; + +public class DeleteOperation { + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + + public static HashMap deletePaths = new HashMap(); + public DeleteOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams = pathParams; + } + @Override + public String toString() { + StringTokenizer st; + st = new StringTokenizer(path, "/"); + //a valid tag is necessary + if ( StringUtils.isEmpty(tag) ) { + return ""; + } + if ( path.contains("/relationship/") ) { // filter paths with relationship-list + return ""; + } + if ( path.endsWith("/relationship-list")) { + return ""; + } + if ( path.startsWith("/search")) { + return ""; + } + //All Delete operation paths end with "relationship" + //or there is a parameter at the end of the path + //and there is a parameter in the path + + if ( !path.endsWith("/relationship") && !path.endsWith("}") ) { + return ""; + } + StringBuffer pathSb = new StringBuffer(); + pathSb.append(" delete:\n"); + pathSb.append(" tags:\n"); + pathSb.append(" - " + tag + "\n"); + pathSb.append(" summary: delete an existing " + xmlRootElementName + "\n"); + + pathSb.append(" description: delete an existing " + xmlRootElementName + "\n"); + + pathSb.append(" operationId: delete" + useOpId + "\n"); + pathSb.append(" consumes:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" - application/xml\n"); + pathSb.append(" produces:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" - application/xml\n"); + pathSb.append(" responses:\n"); + pathSb.append(" \"default\":\n"); + pathSb.append(" " + GenerateXsd.getResponsesUrl()); + pathSb.append(" parameters:\n"); + + pathSb.append(pathParams); // for nesting + if ( !path.endsWith("/relationship") ) { + pathSb.append(" - name: resource-version\n"); + + pathSb.append(" in: query\n"); + pathSb.append(" description: resource-version for concurrency\n"); + pathSb.append(" required: true\n"); + pathSb.append(" type: string\n"); + } + this.objectPathMapEntry(); + return pathSb.toString(); + } + public String objectPathMapEntry() { + if (! path.endsWith("/relationship") ) { + deletePaths.put(path, xmlRootElementName); + } + return (xmlRootElementName+":"+path); + } + } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java new file mode 100644 index 0000000..f472896 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java @@ -0,0 +1,196 @@ +/** + * ============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.schemagen.genxsd; + +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.edges.EdgeRule; +import org.onap.aai.edges.enums.AAIDirection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class EdgeDescription { + + private static final Logger logger = LoggerFactory.getLogger("EdgeDescription.class"); + EdgeRule ed; + public static enum LineageType { + PARENT, CHILD, UNRELATED; + } + private String ruleKey; +// private String to; +// private String from; + private LineageType lineageType = LineageType.UNRELATED; +// private String direction; +// private String multiplicity; +// private String preventDelete; +// private String deleteOtherV; +// private String label; +// private String description; + + public EdgeDescription(EdgeRule ed) { + super(); + if ( ed.getDirection().toString().equals(ed.getContains()) && + AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { + this.lineageType= LineageType.PARENT; + } else if ( AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getContains())) && + ed.getDirection().toString().equals(ed.getContains())) { + this.lineageType= LineageType.CHILD; + } else if ( AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getContains())) && + AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getDirection()))) { + this.lineageType= LineageType.PARENT; + } else if ( AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getContains())) && + AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { + this.lineageType= LineageType.PARENT; + } else { + this.lineageType= LineageType.UNRELATED; + } + this.ruleKey = ed.getFrom()+"|"+ed.getTo(); + this.ed=ed; + } + /** + * @return the deleteOtherV + */ + public String getDeleteOtherV() { + return ed.getDeleteOtherV(); + } + /** + * @return the preventDelete + */ + public String getPreventDelete() { + return ed.getPreventDelete(); + } + public String getAlsoDeleteFootnote(String targetNode) { + String returnVal = ""; + if(ed.getDeleteOtherV().equals("IN") && ed.getTo().equals(targetNode) ) { + logger.debug("Edge: "+this.ruleKey); + logger.debug("IF this "+targetNode+" node is deleted, this FROM node is DELETED also"); + returnVal = "(1)"; + } + if(ed.getDeleteOtherV().equals("OUT") && ed.getFrom().equals(targetNode) ) { + logger.debug("Edge: "+this.ruleKey); + logger.debug("IF this "+targetNode+" is deleted, this TO node is DELETED also"); + returnVal = "(2)"; + } + if(ed.getDeleteOtherV().equals("OUT") && ed.getTo().equals(targetNode) ) { + logger.debug("Edge: "+this.ruleKey); + logger.debug("IF this FROM node is deleted, this "+targetNode+" is DELETED also"); + returnVal = "(3)"; + } + if(ed.getDeleteOtherV().equals("IN") && ed.getFrom().equals(targetNode) ) { + logger.debug("Edge: "+this.ruleKey); + logger.debug("IF this TO node is deleted, this "+targetNode+" node is DELETED also"); + returnVal = "(4)"; + } + return returnVal; + } + /** + * @return the to + */ + public String getTo() { + return ed.getTo(); + } + /** + * @return the from + */ + public String getFrom() { + return ed.getFrom(); + } + public String getRuleKey() { + return ruleKey; + } + public String getMultiplicity() { + return ed.getMultiplicityRule().toString(); + } + public AAIDirection getDirection() { + return AAIDirection.getValue(ed.getDirection()); + } + public String getDescription() { + return ed.getDescription(); + } + public String getRelationshipDescription(String fromTo, String otherNodeName) { + + String result = ""; + + if ("FROM".equals(fromTo)) { + if (AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { + if (LineageType.PARENT == lineageType) { + result = " (PARENT of "+otherNodeName; + result = String.join(" ", result+",", ed.getFrom(), this.getShortLabel(), ed.getTo()+",", this.getMultiplicity()); + } + } + else { + if (LineageType.CHILD == lineageType) { + result = " (CHILD of "+otherNodeName; + result = String.join(" ", result+",", ed.getFrom(), this.getShortLabel(), ed.getTo()+",", this.getMultiplicity()); + } + else if (LineageType.PARENT == lineageType) { + result = " (PARENT of "+otherNodeName; + result = String.join(" ", result+",", ed.getFrom(), this.getShortLabel(), ed.getTo()+",", this.getMultiplicity()); + } + } + if (result.length() == 0) result = String.join(" ", "(", ed.getFrom(), this.getShortLabel(), ed.getTo()+",", this.getMultiplicity()); + } else { + //if ("TO".equals(fromTo) + if (AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { + if (LineageType.PARENT == lineageType) { + result = " (PARENT of "+otherNodeName; + result = String.join(" ", result+",", ed.getFrom(), this.getShortLabel(), ed.getTo()+",", this.getMultiplicity()); + } + } else { + if (LineageType.PARENT == lineageType) { + result = " (PARENT of "+otherNodeName; + result = String.join(" ", result+",", ed.getFrom(), this.getShortLabel(), ed.getTo()+",", this.getMultiplicity()); + } + } + if (result.length() == 0) result = String.join(" ", "(", ed.getFrom(), this.getShortLabel(), ed.getTo()+",", this.getMultiplicity()); + } + + if (result.length() > 0) result = result + ")"; + + if (ed.getDescription() != null && ed.getDescription().length() > 0) result = result + "\n "+ ed.getDescription(); // 6 spaces is important for yaml + + return result; + } + + /** + * @return the hasDelTarget + */ + + public boolean hasDelTarget() { + return StringUtils.isNotEmpty(ed.getDeleteOtherV()) && (! "NONE".equalsIgnoreCase(ed.getDeleteOtherV())); + } + + /** + * @return the type + */ + public LineageType getType() { + + return lineageType; + } + /** + * @return the label + */ + public String getLabel() { + return ed.getLabel(); + } + public String getShortLabel() { + String[] pieces = this.getLabel().split("[.]"); + return pieces[pieces.length-1]; + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java new file mode 100644 index 0000000..f2f0d63 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java @@ -0,0 +1,121 @@ +/** + * ============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.schemagen.genxsd; + +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.schemagen.GenerateXsd; + +import java.util.HashMap; +import java.util.Map; +import java.util.StringTokenizer; +import java.util.Vector; + +public class GetOperation { + static Map> containers = new HashMap>(); + public static void addContainerProps(String container, Vector containerProps) { + containers.put(container, containerProps);; + } + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + private String queryParams; + + public GetOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams = pathParams; +// StringBuilder p = new StringBuilder(); + + if(containers.get(xmlRootElementName) == null) { + this.queryParams = ""; + } else { + this.queryParams= String.join("", containers.get(xmlRootElementName)); +// for(String param : containers.get(xmlRootElementName)) { +// p.append(param); +// } +// this.queryParams = p.toString(); + } + } + @Override + public String toString() { + StringTokenizer st; + st = new StringTokenizer(path, "/"); + //Path has to be longer than one element + /* + if ( st.countTokens() <= 1) { + return ""; + } + */ + //a valid tag is necessary + if ( StringUtils.isEmpty(tag) ) { + return ""; + } + if ( path.endsWith("/relationship") ) { + return ""; + } + if ( path.contains("/relationship/") ) { // filter paths with relationship-list + return ""; + } + if ( path.endsWith("/relationship-list")) { + return ""; + } + if ( path.startsWith("/search")) { + return ""; + } + StringBuffer pathSb = new StringBuffer(); + pathSb.append(" " + path + ":\n" ); + pathSb.append(" get:\n"); + pathSb.append(" tags:\n"); + pathSb.append(" - " + tag + "\n"); + pathSb.append(" summary: returns " + xmlRootElementName + "\n"); + + pathSb.append(" description: returns " + xmlRootElementName + "\n"); + pathSb.append(" operationId: get" + useOpId + "\n"); + pathSb.append(" produces:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" - application/xml\n"); + + pathSb.append(" responses:\n"); + pathSb.append(" \"200\":\n"); + pathSb.append(" description: successful operation\n"); + pathSb.append(" schema:\n"); + pathSb.append(" $ref: \"#/getDefinitions/" + xmlRootElementName + "\"\n"); + pathSb.append(" \"default\":\n"); + pathSb.append(" " + GenerateXsd.getResponsesUrl()); + if ( StringUtils.isNotEmpty(pathParams) || StringUtils.isNotEmpty(queryParams)) { + pathSb.append(" parameters:\n"); + } + if ( StringUtils.isNotEmpty(pathParams)) { + pathSb.append(pathParams); + } +// if ( StringUtils.isNotEmpty(pathParams) && StringUtils.isNotEmpty(queryParams)) { +// pathSb.append("\n"); +// } + if ( StringUtils.isNotEmpty(queryParams)) { + pathSb.append(queryParams); + } + return pathSb.toString(); + } + } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java new file mode 100644 index 0000000..2af0662 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java @@ -0,0 +1,283 @@ +/** + * ============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.schemagen.genxsd; + +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Attr; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class HTMLfromOXM extends OxmFileProcessor { + + private static final Logger logger = LoggerFactory.getLogger("HTMLfromOXM.class"); + + private String maxOccurs; + + public HTMLfromOXM(String maxOccurs, SchemaVersions schemaVersions, NodeIngestor ni, EdgeIngestor ei ){ + super(schemaVersions, ni,ei); + this.maxOccurs = maxOccurs; + } + public void setOxmVersion(File oxmFile, SchemaVersion v) { + super.setOxmVersion(oxmFile, v); + this.v = v; + } + public void setXmlVersion(String xml, SchemaVersion v) { + super.setXmlVersion(xml, v); + this.v = v; + } + public void setVersion(SchemaVersion v) { + super.setVersion(v); + this.v = v; + } + + + @Override + public String getDocumentHeader() { + StringBuffer sb = new StringBuffer(); + logger.trace("processing starts"); + sb.append("" + LINE_SEPARATOR); + String namespace = "org.onap"; + if (v.compareTo(getSchemaVersions().getNamespaceChangeVersion()) < 0 ) { + namespace = "org.openecomp"; + } + if ( versionUsesAnnotations(v.toString()) ) { + sb.append("" + DOUBLE_LINE_SEPARATOR); + } else { + sb.append("" + DOUBLE_LINE_SEPARATOR); + } + return sb.toString(); + } + + @Override + public String process() throws ParserConfigurationException, SAXException, IOException, FileNotFoundException, EdgeRuleNotFoundException { + StringBuilder sb = new StringBuilder(); + + try { + init(); + } catch(Exception e) { + logger.error( "Error initializing " + this.getClass()); + throw e; + } + sb.append(getDocumentHeader()); + StringBuilder sbInventory = new StringBuilder(); + Element elem; + String javaTypeName; + combinedJavaTypes = new HashMap(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + elem = (Element)javaTypeNodes.item(i); + javaTypeName = elem.getAttribute("name"); + if ( !"Inventory".equals(javaTypeName ) ) { + if ( generatedJavaType.containsKey(javaTypeName) ) { + continue; + } + // will combine all matching java-types + elem = getJavaTypeElement(javaTypeName,false ); + } + XSDElement javaTypeElement = new XSDElement(elem, maxOccurs); + //javaTypeName = javaTypeElement.name(); + if ( javaTypeName == null ) { + String msg = "Invalid OXM file: has no name attribute in " + oxmFile; + logger.error(msg); + throw new SAXException(msg); + } + if ("Nodes".equals(javaTypeName)) { + logger.debug("skipping Nodes entry (temporary feature)"); + continue; + } + logger.debug(getXmlRootElementName(javaTypeName)+" vs "+ javaTypeName+":"+generatedJavaType.containsKey(getXmlRootElementName(javaTypeName))); + + if ( !"Inventory".equals(javaTypeName)) { + generatedJavaType.put(javaTypeName, null); + } + sb.append(processJavaTypeElement( javaTypeName, javaTypeElement, sbInventory )); + } + sb.append(sbInventory); + sb.append(" " + LINE_SEPARATOR); + sb.append(" " + LINE_SEPARATOR); + sb.append(" " + LINE_SEPARATOR); + sb.append("" + LINE_SEPARATOR); + return sb.toString(); + } + + protected boolean isValidName( String name ) { + if ( name == null || name.length() == 0 ) { + return false; + } + String pattern = "^[a-z0-9-]*$"; + return name.matches(pattern); + } + + protected boolean skipCheck( String javaAttribute ) { + if ( javaAttribute.equals("model") + || javaAttribute.equals("eventHeader") ) { + return true; + } + return false; + } + + public String processJavaTypeElement( String javaTypeName, Element javaType_Element, StringBuilder sbInventory) { + String xmlRootElementName = getXMLRootElementName(javaType_Element); + + NodeList parentNodes = javaType_Element.getElementsByTagName("java-attributes"); + StringBuffer sb = new StringBuffer(); + if ( parentNodes.getLength() == 0 ) { + logger.trace( "no java-attributes for java-type " + javaTypeName); + return ""; + } + + Element parentElement = (Element)parentNodes.item(0); + NodeList xmlElementNodes = parentElement.getElementsByTagName("xml-element"); + // support for multiple inventory elements across oxm files + boolean processingInventory = false; + boolean hasPreviousInventory = false; + if ( "inventory".equals(xmlRootElementName) && sbInventory != null ) { + processingInventory = true; + if ( sbInventory.toString().contains("xs:complexType") ) { + hasPreviousInventory = true; + } + } + + StringBuffer sb1 = new StringBuffer(); + if ( xmlElementNodes.getLength() > 0 ) { + + if ( !processingInventory || !hasPreviousInventory ) { + sb1.append(" " + LINE_SEPARATOR); + sb1.append(" " + LINE_SEPARATOR); + + XSDElement javaTypeElement = new XSDElement(javaType_Element, maxOccurs); + logger.debug("XSDElement name: "+javaTypeElement.name()); + if(versionUsesAnnotations(v.toString())) { + sb1.append(javaTypeElement.getHTMLAnnotation("class", " ")); + } + sb1.append(" " + LINE_SEPARATOR); + } + Element javatypeElement; + for ( int i = 0; i < xmlElementNodes.getLength(); ++i ) { + + XSDElement xmlElementElement = new XSDElement((Element)xmlElementNodes.item(i), maxOccurs); + +// String elementName = xmlElementElement.getAttribute("name"); + String elementType = xmlElementElement.getAttribute("type"); + //No simple types; only AAI custom types + String addType = elementType.contains("." + v.toString() + ".") ? elementType.substring(elementType.lastIndexOf('.')+1) : null; + if ( elementType.contains("." + v.toString() + ".") && !generatedJavaType.containsKey(addType) ) { + generatedJavaType.put(addType, elementType); + javatypeElement = getJavaTypeElement(addType, processingInventory); + sb.append(processJavaTypeElement( addType, javatypeElement, null )); + } + if ("Nodes".equals(addType)) { + logger.trace("Skipping nodes, temporary testing"); + continue; + } + //assembles the basic + sb1.append(xmlElementElement.getHTMLElement(v, versionUsesAnnotations(v.toString()), this)); + } + if ( !processingInventory ) { + sb1.append(" " + LINE_SEPARATOR); + sb1.append(" " + LINE_SEPARATOR); + sb1.append(" " + LINE_SEPARATOR); + } + } + + if ( xmlElementNodes.getLength() < 1 ) { + sb.append(" " + LINE_SEPARATOR); + sb.append(" " + LINE_SEPARATOR); + sb.append(" " + LINE_SEPARATOR); + sb.append(" " + LINE_SEPARATOR); + sb.append(" " + LINE_SEPARATOR); + generatedJavaType.put(javaTypeName, null); + return sb.toString(); + } + if ( processingInventory && sbInventory != null ) { + sbInventory.append(sb1); + } else { + sb.append( sb1 ); + } + return sb.toString(); + } + + private Element getJavaTypeElement( String javaTypeName, boolean processingInventory ) + { + String attrName, attrValue; + Attr attr; + Element javaTypeElement; + + List combineElementList = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + javaTypeElement = (Element) javaTypeNodes.item(i); + NamedNodeMap attributes = javaTypeElement.getAttributes(); + for ( int j = 0; j < attributes.getLength(); ++j ) { + attr = (Attr) attributes.item(j); + attrName = attr.getNodeName(); + attrValue = attr.getNodeValue(); + if ( attrName.equals("name") && attrValue.equals(javaTypeName)) { + if ( processingInventory ) { + return javaTypeElement; + } else { + combineElementList.add(javaTypeElement); + } + } + } + } + if ( combineElementList.size() == 0 ) { + logger.error( "oxm file format error, missing java-type " + javaTypeName); + return (Element) null; + } else if ( combineElementList.size() > 1 ) { + // need to combine java-attributes + return combineElements( javaTypeName, combineElementList); + } + return combineElementList.get(0); + + } + + private boolean versionUsesAnnotations( String version) { + int ver = new Integer(version.substring(1)).intValue(); + if ( ver >= HTMLfromOXM.annotationsStartVersion ) { + return true; + } + if ( ver <= HTMLfromOXM.annotationsMinVersion ) { + return true; + } + return false; + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java new file mode 100644 index 0000000..b0961c3 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java @@ -0,0 +1,164 @@ +/** + * ============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.schemagen.genxsd; + +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.schemagen.GenerateXsd; + +import java.util.*; + +public class NodeGetOperation { + static Map> containers = new HashMap>(); + static ArrayList checklist = createChecklist(); + private static ArrayList createChecklist() + { + ArrayList list = new ArrayList(); + return list; + } + public static void addContainerProps(String container, Vector containerProps) { + containers.put(container, containerProps); + } + public static void resetContainers() { + containers = new HashMap>(); + checklist = createChecklist(); + } + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String CRUDpath; + private String pathParams; + private String queryParams; + + public NodeGetOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.CRUDpath = path; + this.path = nodePath(); + this.pathParams = pathParams; + StringBuilder p = new StringBuilder(); + + if(containers.get(xmlRootElementName) == null) { + this.queryParams = ""; + } else { + this.queryParams= String.join("", containers.get(xmlRootElementName)); + for(String param : containers.get(xmlRootElementName)) { + p.append(param); + } + this.queryParams = p.toString(); + } + } + String nodePath() { + String path = null; + int loc = CRUDpath.indexOf(xmlRootElementName); + if(loc > 0) { + path = "/nodes/"+CRUDpath.substring(loc); + } + return path; + } + @Override + public String toString() { + StringTokenizer st; + st = new StringTokenizer(CRUDpath, "/"); + //Path has to be longer than one element + /* + if ( st.countTokens() <= 1) { + return ""; + } + */ + //a valid tag is necessary + if ( StringUtils.isEmpty(tag) ) { + return ""; + } + if ( CRUDpath.endsWith("/relationship") ) { + return ""; + } + if ( CRUDpath.contains("/relationship/") ) { // filter paths with relationship-list + return ""; + } + if ( CRUDpath.endsWith("/relationship-list")) { + return ""; + } + if ( CRUDpath.startsWith("/search")) { + return ""; + } + if ( CRUDpath.startsWith("/actions")) { + return ""; + } + if ( CRUDpath.startsWith("/nodes")) { + return ""; + } + if (checklist.contains(xmlRootElementName)) { + return ""; + } + StringBuffer pathSb = new StringBuffer(); + //Drop out the operations with multiple path parameters + if(CRUDpath.lastIndexOf('{') > CRUDpath.indexOf('{') && StringUtils.isNotEmpty(pathParams)) { + return ""; + } + if(path.lastIndexOf('{') > path.indexOf('{') ) { + return ""; + } + //trim leading path elements before the current node type +// int loc = path.indexOf(xmlRootElementName); +// if(loc > 0) { +// path = "/nodes/"+path.substring(loc); +// } + //append generic parameter syntax to all plural queries + if(path.indexOf('{') == -1) { + path += "?parameter=value[¶meter2=value2]"; + } + pathSb.append(" " + path + ":\n" ); + pathSb.append(" get:\n"); + pathSb.append(" tags:\n"); + pathSb.append(" - Operations" + "\n"); + pathSb.append(" summary: returns " + xmlRootElementName + "\n"); + + pathSb.append(" description: returns " + xmlRootElementName + "\n"); + pathSb.append(" operationId: get" + useOpId + "\n"); + pathSb.append(" produces:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" - application/xml\n"); + + pathSb.append(" responses:\n"); + pathSb.append(" \"200\":\n"); + pathSb.append(" description: successful operation\n"); + pathSb.append(" schema:\n"); + pathSb.append(" $ref: \"#/definitions/" + xmlRootElementName + "\"\n"); + pathSb.append(" \"default\":\n"); + pathSb.append(" " + GenerateXsd.getResponsesUrl()); + if ( StringUtils.isNotEmpty(pathParams) || StringUtils.isNotEmpty(queryParams)) { + pathSb.append("\n parameters:\n"); + } + if ( StringUtils.isNotEmpty(pathParams)) { + pathSb.append(pathParams); + } + if ( StringUtils.isNotEmpty(pathParams) && StringUtils.isNotEmpty(queryParams)) { + pathSb.append("\n"); + } + if ( StringUtils.isNotEmpty(queryParams)) { + pathSb.append(queryParams); + } + checklist.add(xmlRootElementName); + return pathSb.toString(); + } + } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java new file mode 100644 index 0000000..b9efa2f --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java @@ -0,0 +1,527 @@ +/** + * ============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.schemagen.genxsd; + +import com.google.common.collect.Multimap; +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.edges.EdgeRule; +import org.onap.aai.edges.EdgeRuleQuery; +import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + +public class NodesYAMLfromOXM extends OxmFileProcessor { + private static final Logger logger = LoggerFactory.getLogger("GenerateXsd.class"); + private static final String root = "../aai-schema/src/main/resources"; + private static final String autoGenRoot = "aai-schema/src/main/resources"; + private static final String generateTypeYAML = "yaml"; + private static final String normalStartDir = "aai-schema-gen"; + private static final String yaml_dir = (((System.getProperty("user.dir") != null) && (!System.getProperty("user.dir").contains(normalStartDir))) ? autoGenRoot : root) + "/aai_swagger_yaml"; + private StringBuilder inventoryDefSb = null; + private Map operationDefinitions = new HashMap<>(); + + private String basePath; + + public NodesYAMLfromOXM(String basePath, SchemaVersions schemaVersions, NodeIngestor ni, EdgeIngestor ei){ + super(schemaVersions, ni,ei); + this.basePath = basePath; + } + public void setOxmVersion(File oxmFile, SchemaVersion v) { + super.setOxmVersion(oxmFile, v); + } + public void setXmlVersion(String xml, SchemaVersion v){ + super.setXmlVersion(xml, v); + } + + public void setVersion(SchemaVersion v) { + super.setVersion(v); + } + + @Override + public String getDocumentHeader() { + StringBuffer sb = new StringBuffer(); + sb.append("swagger: \"2.0\"\ninfo:\n "); + sb.append("description: |"); + if ( versionSupportsSwaggerDiff(v.toString())) { + sb.append("\n\n [Differences versus the previous schema version]("+"apidocs/aai_swagger_" + v.toString() + ".diff)"); + } + sb.append("\n\n Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.\n\n Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.\n\n You may obtain a copy of the License at\n\n (https://creativecommons.org/licenses/by/4.0/)\n\n 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.\n\n This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions.\n version: \"" + v.toString() +"\"\n"); + sb.append(" title: Active and Available Inventory REST API\n"); + sb.append(" license:\n name: Apache 2.0\n url: http://www.apache.org/licenses/LICENSE-2.0.html\n"); + sb.append(" contact:\n name:\n url:\n email:\n"); + sb.append("host:\nbasePath: " + basePath + "/" + v.toString() + "\n"); + sb.append("schemes:\n - https\npaths:\n"); + return sb.toString(); + } + + protected void init() throws ParserConfigurationException, SAXException, IOException, FileNotFoundException, EdgeRuleNotFoundException { + super.init(); + } + + @Override + public String process() throws ParserConfigurationException, SAXException, IOException, FileNotFoundException, EdgeRuleNotFoundException { + StringBuffer sb = new StringBuffer(); + StringBuffer pathSb = new StringBuffer(); + NodeGetOperation.resetContainers(); + try { + init(); + } catch(Exception e) { + logger.error( "Error initializing " + this.getClass()); + throw e; + } + pathSb.append(getDocumentHeader()); + StringBuffer definitionsSb = new StringBuffer(); + Element elem; + String javaTypeName; + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + elem = (Element)javaTypeNodes.item(i); + javaTypeName = elem.getAttribute("name"); + if ( !"Inventory".equals(javaTypeName ) ) { + if ( generatedJavaType.containsKey(javaTypeName) ) { + continue; + } + // will combine all matching java-types + elem = getJavaTypeElementSwagger(javaTypeName ); + } + + XSDElement javaTypeElement = new XSDElement(elem); + + logger.debug("External: "+javaTypeElement.getAttribute("name")+"/"+getXmlRootElementName(javaTypeName)); + if ( javaTypeName == null ) { + String msg = "Invalid OXM file: has no name attribute in " + oxmFile; + logger.error(msg); + throw new SAXException(msg); + } + namespaceFilter.add(getXmlRootElementName(javaTypeName)); + processJavaTypeElementSwagger( javaTypeName, javaTypeElement, pathSb, + definitionsSb, null, null, null, null, null, null); + } + sb.append(pathSb); +// sb.append(getDocumentHeader()); +// sb.append(totalPathSbAccumulator); + sb.append(appendOperations()); + sb.append(appendDefinitions()); + PutRelationPathSet prp = new PutRelationPathSet(v); + prp.generateRelations(ei); + return sb.toString(); + } + + public String appendDefinitions() { + return appendDefinitions(null); + } + + public String appendDefinitions(Set namespaceFilter) { + if ( inventoryDefSb != null ) { + javaTypeDefinitions.put("inventory", inventoryDefSb.toString()); + } + StringBuffer sb = new StringBuffer("definitions:\n"); + Map sortedJavaTypeDefinitions = new TreeMap<>(javaTypeDefinitions); + + for (Map.Entry entry : sortedJavaTypeDefinitions.entrySet()) { + if(namespaceFilter != null && (! namespaceFilter.contains(entry.getKey()))) { + continue; + } + sb.append(entry.getValue()); + } + return sb.toString(); + } + + private String processJavaTypeElementSwagger( String javaTypeName, Element javaTypeElement, + StringBuffer pathSb, StringBuffer definitionsSb, String path, String tag, String opId, + String getItemName, StringBuffer pathParams, String validEdges) { + + String xmlRootElementName = getXMLRootElementName(javaTypeElement); + StringBuilder definitionsLocalSb = new StringBuilder(256); + + String useTag = null; + String useOpId = null; + logger.debug("tag="+tag); + + if(tag != null && (! validTag(tag))) { + logger.debug("tag="+tag+"; javaTypeName="+javaTypeName); + return null; + } + if ( !javaTypeName.equals("Inventory") ) { + if ( javaTypeName.equals("AaiInternal")) + return null; + if ( opId == null ) + useOpId = javaTypeName; + else + useOpId = opId + javaTypeName; + if ( tag == null ) + useTag = javaTypeName; + } + + path = xmlRootElementName.equals("inventory") ? "" : (path == null) ? "/" + xmlRootElementName : path + "/" + xmlRootElementName; + XSDJavaType javaType = new XSDJavaType(javaTypeElement); + if ( getItemName != null) { + if ( getItemName.equals("array") ) + return javaType.getArrayType(); + else + return javaType.getItemName(); + } + + NodeList parentNodes = javaTypeElement.getElementsByTagName("java-attributes"); + if ( parentNodes.getLength() == 0 ) { + logger.debug( "no java-attributes for java-type " + javaTypeName); + return ""; + } + + String pathDescriptionProperty = javaType.getPathDescriptionProperty(); + String container = javaType.getContainerProperty(); + Vector indexedProps = javaType.getIndexedProps(); + Vector containerProps = new Vector(); + if(container != null) { + logger.debug("javaTypeName " + javaTypeName + " container:" + container +" indexedProps:"+indexedProps); + } + + Element parentElement = (Element)parentNodes.item(0); + NodeList xmlElementNodes = parentElement.getElementsByTagName("xml-element"); + + StringBuffer sbParameters = new StringBuffer(); + StringBuffer sbRequired = new StringBuffer(); + int requiredCnt = 0; + int propertyCnt = 0; + StringBuffer sbProperties = new StringBuffer(); + + if ( appliedPaths.containsKey(path)) + return null; + + StringTokenizer st = new StringTokenizer(path, "/"); + logger.debug("path: " + path + " st? " + st.toString()); + if ( st.countTokens() > 1 && getItemName == null ) { + logger.debug("appliedPaths: " + appliedPaths + " containsKey? " + appliedPaths.containsKey(path)); + appliedPaths.put(path, xmlRootElementName); + } + Vector addTypeV = null; + for ( int i = 0; i < xmlElementNodes.getLength(); ++i ) { + XSDElement xmlElementElement = new XSDElement((Element)xmlElementNodes.item(i)); + if ( !xmlElementElement.getParentNode().isSameNode(parentElement)) + continue; + String elementDescription=xmlElementElement.getPathDescriptionProperty(); + if(getItemName == null) { + addTypeV = xmlElementElement.getAddTypes(v.toString()); + } + if ( "true".equals(xmlElementElement.getAttribute("xml-key"))) { + path += "/{" + xmlElementElement.getAttribute("name") + "}"; + } + logger.debug("path: " + path); + logger.debug( "xmlElementElement.getAttribute(required):"+xmlElementElement.getAttribute("required") ); + + if ( ("true").equals(xmlElementElement.getAttribute("required"))) { + if ( requiredCnt == 0 ) + sbRequired.append(" required:\n"); + ++requiredCnt; + if ( addTypeV == null || addTypeV.isEmpty()) { + sbRequired.append(" - " + xmlElementElement.getAttribute("name") + "\n"); + } else { + for ( int k = 0; k < addTypeV.size(); ++k ) { + sbRequired.append(" - " + getXmlRootElementName(addTypeV.elementAt(k)) + ":\n"); + } + } + } + + if ( "true".equals(xmlElementElement.getAttribute("xml-key")) ) { + sbParameters.append(xmlElementElement.getPathParamYAML(elementDescription)); + } + if ( indexedProps != null + && indexedProps.contains(xmlElementElement.getAttribute("name") ) ) { + containerProps.add(xmlElementElement.getQueryParamYAML()); + NodeGetOperation.addContainerProps(container, containerProps); + } + if ( xmlElementElement.isStandardType()) { + sbProperties.append(xmlElementElement.getTypePropertyYAML()); + ++propertyCnt; + } + +// StringBuffer newPathParams = new StringBuffer((pathParams == null ? "" : pathParams.toString())+sbParameters.toString()); //cp8128 don't append the pathParams to sbParameters so that child nodes don't contain the parameters from parent + StringBuffer newPathParams = new StringBuffer(sbParameters.toString()); + for ( int k = 0; addTypeV != null && k < addTypeV.size(); ++k ) { + String addType = addTypeV.elementAt(k); + namespaceFilter.add(getXmlRootElementName(addType)); + if ( opId == null || !opId.contains(addType)) { + processJavaTypeElementSwagger( addType, getJavaTypeElementSwagger(addType), + pathSb, definitionsSb, path, tag == null ? useTag : tag, useOpId, null, + newPathParams, validEdges); + } + // need item name of array + String itemName = processJavaTypeElementSwagger( addType, getJavaTypeElementSwagger(addType), + pathSb, definitionsSb, path, tag == null ? useTag : tag, useOpId, + "array", null, null); + + if ( itemName != null ) { + if ( addType.equals("AaiInternal") ) { + logger.debug( "addType AaiInternal, skip properties"); + + } else if ( getItemName == null) { + ++propertyCnt; + sbProperties.append(" " + getXmlRootElementName(addType) + ":\n"); + sbProperties.append(" type: array\n items:\n"); + sbProperties.append(" $ref: \"#/definitions/" + (itemName == "" ? "aai-internal" : itemName) + "\"\n"); + if ( StringUtils.isNotEmpty(elementDescription) ) + sbProperties.append(" description: " + elementDescription + "\n"); + } + } else { + if ( ("java.util.ArrayList").equals(xmlElementElement.getAttribute("container-type"))) { + // need properties for getXmlRootElementName(addType) + namespaceFilter.add(getXmlRootElementName(addType)); + if(getXmlRootElementName(addType).equals("service-capabilities")) + { + logger.info("arrays: "+ getXmlRootElementName(addType)); + } +// newPathParams = new StringBuffer((pathParams == null ? "" : pathParams.toString())+sbParameters.toString()); //cp8128 - change this to not append pathParameters. Just use sbParameters + newPathParams = new StringBuffer(sbParameters.toString()); + processJavaTypeElementSwagger( addType, getJavaTypeElementSwagger(addType), + pathSb, definitionsSb, path, tag == null ? useTag : tag, useOpId, + null, newPathParams, validEdges); + sbProperties.append(" " + getXmlRootElementName(addType) + ":\n"); + sbProperties.append(" type: array\n items: \n"); + sbProperties.append(" $ref: \"#/definitions/" + getXmlRootElementName(addType) + "\"\n"); + if ( StringUtils.isNotEmpty(elementDescription) ) + sbProperties.append(" description: " + elementDescription + "\n"); + + } else { + //Make sure certain types added to the filter don't appear + if (nodeFilter.contains(getXmlRootElementName(addType))) { + ; + } else { + sbProperties.append(" " + getXmlRootElementName(addType) + ":\n"); + sbProperties.append(" type: object\n"); + sbProperties.append(" $ref: \"#/definitions/" + getXmlRootElementName(addType) + "\"\n"); + } + } + if ( StringUtils.isNotEmpty(elementDescription) ) + sbProperties.append(" description: " + elementDescription + "\n"); + ++propertyCnt; + } + } + } + + if ( sbParameters.toString().length() > 0 ) { + if ( pathParams == null ) + pathParams = new StringBuffer(); + pathParams.append(sbParameters); + } + if (indexedProps.isEmpty() && containerProps.isEmpty()){ + NodeGetOperation get = new NodeGetOperation(useOpId, xmlRootElementName, tag, path, null); + String operation = get.toString(); + if(StringUtils.isNotEmpty(operation)) { + operationDefinitions.put(xmlRootElementName, operation); + } + } else { + NodeGetOperation get = new NodeGetOperation(useOpId, xmlRootElementName, tag, path, pathParams == null ? "" : pathParams.toString()); + String operation = get.toString(); + if(StringUtils.isNotEmpty(operation)) { + operationDefinitions.put(xmlRootElementName, operation); + } + } + logger.debug("opId vs useOpId:"+opId+" vs "+useOpId+" PathParams="+pathParams); + // add PUT + if ( generatedJavaType.containsKey(xmlRootElementName) ) { + logger.debug("xmlRootElementName(1)="+xmlRootElementName); + return null; + } + boolean processingInventoryDef = false; + if ( xmlRootElementName.equals("inventory")) { + // inventory properties for each oxm to be concatenated + processingInventoryDef = true; + if ( inventoryDefSb == null ) { + inventoryDefSb = new StringBuilder(); + definitionsSb.append(" " + xmlRootElementName + ":\n"); + definitionsLocalSb.append(" " + xmlRootElementName + ":\n"); + definitionsLocalSb.append(" properties:\n"); + } + + } else { + definitionsSb.append(" " + xmlRootElementName + ":\n"); + definitionsLocalSb.append(" " + xmlRootElementName + ":\n"); + } + DeleteFootnoteSet footnotes = new DeleteFootnoteSet(xmlRootElementName); + StringBuffer sbEdge = new StringBuffer(); + LinkedHashSet preventDelete = new LinkedHashSet(); + String prevent=null; + String nodeCaption = new String(" ###### Related Nodes\n"); + try { + EdgeRuleQuery q = new EdgeRuleQuery.Builder(xmlRootElementName).version(v).fromOnly().build(); + Multimap results = ei.getRules(q); + SortedSet ss=new TreeSet<>(results.keySet()); + sbEdge.append(nodeCaption); + nodeCaption=""; + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getFrom().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ logger.info(new String(new StringBuffer(" - TO ").append(i.getTo()).append(i.getDirection().toString()).append(i.getContains())));} ); + results.get(key).stream().filter((i) -> (i.getFrom().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ sbEdge.append(" - TO "+i.getTo()); EdgeDescription ed = new EdgeDescription(i); String footnote = ed.getAlsoDeleteFootnote(xmlRootElementName); sbEdge.append(ed.getRelationshipDescription("TO", xmlRootElementName)+footnote+"\n"); if(StringUtils.isNotEmpty(footnote)) footnotes.add(footnote);} ); + results.get(key).stream().filter((i) -> (i.getFrom().equals(xmlRootElementName) && (! i.isPrivateEdge() && i.getPreventDelete().equals("OUT")))).forEach((i) ->{ preventDelete.add(i.getTo().toUpperCase());} ); + } + } catch(Exception e) { + logger.debug("xmlRootElementName: "+xmlRootElementName+"\n"+e); + } + try { + EdgeRuleQuery q1 = new EdgeRuleQuery.Builder(xmlRootElementName).version(v).toOnly().build(); + Multimap results = ei.getRules(q1); + SortedSet ss=new TreeSet(results.keySet()); + sbEdge.append(nodeCaption); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ sbEdge.append(" - FROM "+i.getFrom()); EdgeDescription ed = new EdgeDescription(i); String footnote = ed.getAlsoDeleteFootnote(xmlRootElementName); sbEdge.append(ed.getRelationshipDescription("FROM", xmlRootElementName)+footnote+"\n"); if(StringUtils.isNotEmpty(footnote)) footnotes.add(footnote);} ); + results.get(key).stream().filter((i) -> (i.getTo().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ logger.info(new String(new StringBuffer(" - FROM ").append(i.getFrom()).append(i.getDirection().toString()).append(i.getContains())));} ); + results.get(key).stream().filter((i) -> (i.getTo().equals(xmlRootElementName) && (! i.isPrivateEdge() && i.getPreventDelete().equals("IN")))).forEach((i) ->{ preventDelete.add(i.getFrom().toUpperCase());} ); + } + } catch(Exception e) { + logger.debug("xmlRootElementName: "+xmlRootElementName+"\n"+e); + } + if(preventDelete.size() > 0) { + prevent = xmlRootElementName.toUpperCase()+" cannot be deleted if related to "+String.join(",",preventDelete); + logger.debug(prevent); + } + + if(StringUtils.isNotEmpty(prevent)) { + footnotes.add(prevent); + } + if(footnotes.footnotes.size() > 0) { + sbEdge.append(footnotes.toString()); + } + validEdges = sbEdge.toString(); + + // Handle description property. Might have a description OR valid edges OR both OR neither. + // Only put a description: tag if there is at least one. + if (StringUtils.isNotEmpty(pathDescriptionProperty) || StringUtils.isNotEmpty(validEdges) ) { + definitionsSb.append(" description: |\n"); + definitionsLocalSb.append(" description: |\n"); + + if ( pathDescriptionProperty != null ) { + definitionsSb.append(" " + pathDescriptionProperty + "\n" ); + definitionsLocalSb.append(" " + pathDescriptionProperty + "\n" ); + } + definitionsSb.append(validEdges); + definitionsLocalSb.append(validEdges); + } + + if ( requiredCnt > 0 ) { + definitionsSb.append(sbRequired); + definitionsLocalSb.append(sbRequired); + } + + if ( propertyCnt > 0 ) { + definitionsSb.append(" properties:\n"); + definitionsSb.append(sbProperties); + if ( !processingInventoryDef) { + definitionsLocalSb.append(" properties:\n"); + } + definitionsLocalSb.append(sbProperties); + } + try { + namespaceFilter.add(xmlRootElementName); + if ( xmlRootElementName.equals("inventory") ) { + //will add to javaTypeDefinitions at end + inventoryDefSb.append(definitionsLocalSb.toString()); + } else { + javaTypeDefinitions.put(xmlRootElementName, definitionsLocalSb.toString()); + } + } catch (Exception e) { + e.printStackTrace(); + } + if ( xmlRootElementName.equals("inventory") ) { + logger.trace("skip xmlRootElementName(2)="+xmlRootElementName); + return null; + } + generatedJavaType.put(xmlRootElementName, null); + //Write operations by Namespace(tagName) +/* + if( validTag(javaTypeName) && javaTypeName == useTag && tag == null) { + writeYAMLfile("nodes_"+javaTypeName, getDocumentHeader()+pathSb.toString()+appendDefinitions(namespaceFilter)); + totalPathSbAccumulator.append(pathSb); + pathSb.delete(0, pathSb.length()); + namespaceFilter.clear(); + } +*/ + logger.debug("xmlRootElementName(2)="+xmlRootElementName); + return null; + } + + private void writeYAMLfile(String outfileName, String fileContent) { + outfileName = (StringUtils.isEmpty(outfileName)) ? "aai_swagger" : outfileName; + outfileName = (outfileName.lastIndexOf(File.separator) == -1) ? yaml_dir + File.separator +outfileName+"_" + v.toString() + "." + generateTypeYAML : outfileName; + File outfile = new File(outfileName); + File parentDir = outfile.getParentFile(); + if(parentDir != null && ! parentDir.exists()) + parentDir.mkdirs(); + try { + outfile.createNewFile(); + } catch (IOException e) { + logger.error( "Exception creating output file " + outfileName); + e.printStackTrace(); + } + Path path = Paths.get(outfileName); + Charset charset = Charset.forName("UTF-8"); + try(BufferedWriter bw = Files.newBufferedWriter(path, charset);) { + bw.write(fileContent); + if ( bw != null ) { + bw.close(); + } + } catch ( IOException e) { + logger.error( "Exception writing output file " + outfileName); + e.printStackTrace(); + } + } + + public boolean validTag(String tag) { + if(tag != null) { + switch ( tag ) { + case "Network": + case "Search": + case "Actions": + case "ServiceDesignAndCreation": + case "Business": + case "LicenseManagement": + case "CloudInfrastructure": + return true; + } + } + return false; + } + + public String appendOperations() { + //append definitions + StringBuffer sb = new StringBuffer(); + Map sortedOperationDefinitions = new TreeMap(operationDefinitions); + for (Map.Entry entry : sortedOperationDefinitions.entrySet()) { + sb.append(entry.getValue()); + } + return sb.toString(); + } +} + diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java new file mode 100644 index 0000000..dfa702b --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java @@ -0,0 +1,481 @@ +/** + * ============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.schemagen.genxsd; + +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.w3c.dom.*; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +import javax.xml.XMLConstants; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.StringReader; +import java.util.*; + +public abstract class OxmFileProcessor { + + public static final String LINE_SEPARATOR = System.getProperty("line.separator"); + public static final String DOUBLE_LINE_SEPARATOR = System.getProperty("line.separator") + System.getProperty("line.separator"); + + EdgeIngestor ei; + NodeIngestor ni; + protected Set namespaceFilter; + protected File oxmFile; + protected String xml; + protected SchemaVersion v; + protected Document doc = null; + protected String apiVersion = null; + protected SchemaVersions schemaVersions; + + + protected static int annotationsStartVersion = 9; // minimum version to support annotations in xsd + protected static int annotationsMinVersion = 6; // lower versions support annotations in xsd + protected static int swaggerSupportStartsVersion = 1; // minimum version to support swagger documentation + protected static int swaggerDiffStartVersion = 1; // minimum version to support difference + protected static int swaggerMinBasepath = 6; // minimum version to support difference + + protected Map combinedJavaTypes; + + + protected String apiVersionFmt = null; + protected HashMap generatedJavaType = new HashMap(); + protected HashMap appliedPaths = new HashMap(); + protected NodeList javaTypeNodes = null; + + protected Map javaTypeDefinitions = createJavaTypeDefinitions(); + private Map createJavaTypeDefinitions() + { + StringBuffer aaiInternal = new StringBuffer(); + StringBuffer nodes = new StringBuffer(); + Map javaTypeDefinitions = new HashMap(); + aaiInternal.append(" aai-internal:\n"); + aaiInternal.append(" properties:\n"); + aaiInternal.append(" property-name:\n"); + aaiInternal.append(" type: string\n"); + aaiInternal.append(" property-value:\n"); + aaiInternal.append(" type: string\n"); +// javaTypeDefinitions.put("aai-internal", aaiInternal.toString()); + nodes.append(" nodes:\n"); + nodes.append(" properties:\n"); + nodes.append(" inventory-item-data:\n"); + nodes.append(" type: array\n"); + nodes.append(" items:\n"); + nodes.append(" $ref: \"#/definitions/inventory-item-data\"\n"); + javaTypeDefinitions.put("nodes", nodes.toString()); + return javaTypeDefinitions; + } + static List nodeFilter = createNodeFilter(); + private static List createNodeFilter() + { + List list = Arrays.asList("search", "actions", "aai-internal", "nodes"); + return list; + } + + public OxmFileProcessor(SchemaVersions schemaVersions, NodeIngestor ni, EdgeIngestor ei){ + this.schemaVersions = schemaVersions; + this.ni = ni; + this.ei = ei; + } + + + + public void setOxmVersion(File oxmFile, SchemaVersion v) { + this.oxmFile = oxmFile; + this.v = v; + } + + public void setXmlVersion(String xml, SchemaVersion v) { + this.xml = xml; + this.v = v; + } + + public void setVersion(SchemaVersion v) { + this.oxmFile = null; + this.v = v; + } + + public void setNodeIngestor(NodeIngestor ni) { + this.ni = ni; + } + + public void setEdgeIngestor(EdgeIngestor ei) { + this.ei = ei; + } + + public SchemaVersions getSchemaVersions() { + return schemaVersions; + } + + public void setSchemaVersions(SchemaVersions schemaVersions) { + this.schemaVersions = schemaVersions; + } + + protected void init() throws ParserConfigurationException, SAXException, IOException, EdgeRuleNotFoundException { + if(this.xml != null || this.oxmFile != null ) { + createDocument(); + } + if(this.doc == null) { + this.doc = ni.getSchema(v); + } + namespaceFilter = new HashSet<>(); + + NodeList bindingsNodes = doc.getElementsByTagName("xml-bindings"); + Element bindingElement; + NodeList javaTypesNodes; + Element javaTypesElement; + + if ( bindingsNodes == null || bindingsNodes.getLength() == 0 ) { + throw new SAXException("OXM file error: missing in " + oxmFile); + } + + bindingElement = (Element) bindingsNodes.item(0); + javaTypesNodes = bindingElement.getElementsByTagName("java-types"); + if ( javaTypesNodes.getLength() < 1 ) { + throw new SAXException("OXM file error: missing in " + oxmFile); + } + javaTypesElement = (Element) javaTypesNodes.item(0); + + javaTypeNodes = javaTypesElement.getElementsByTagName("java-type"); + if ( javaTypeNodes.getLength() < 1 ) { + throw new SAXException("OXM file error: missing in " + oxmFile ); + } + } + + private void createDocument() throws ParserConfigurationException, SAXException, IOException { + DocumentBuilder dBuilder = null; + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + dbFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + dBuilder = dbFactory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + throw e; + } + try { + if ( xml == null ) { + doc = dBuilder.parse(oxmFile); + } else { + InputSource isInput = new InputSource(new StringReader(xml)); + doc = dBuilder.parse(isInput); + } + } catch (SAXException e) { + throw e; + } catch (IOException e) { + throw e; + } + return; + } + public abstract String getDocumentHeader(); + public abstract String process() throws ParserConfigurationException, SAXException, IOException, FileNotFoundException, EdgeRuleNotFoundException ; + + public String getXMLRootElementName(Element javaTypeElement) { + String xmlRootElementName=null; + NamedNodeMap attributes; + + NodeList valNodes = javaTypeElement.getElementsByTagName("xml-root-element"); + Element valElement = (Element) valNodes.item(0); + attributes = valElement.getAttributes(); + for ( int i = 0; i < attributes.getLength(); ++i ) { + Attr attr = (Attr) attributes.item(i); + String attrName = attr.getNodeName(); + + String attrValue = attr.getNodeValue(); + if ( attrName.equals("name")) + xmlRootElementName = attrValue; + } + return xmlRootElementName; + } + + public String getXmlRootElementName( String javaTypeName ) + { + String attrName, attrValue; + Attr attr; + Element javaTypeElement; + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + javaTypeElement = (Element) javaTypeNodes.item(i); + NamedNodeMap attributes = javaTypeElement.getAttributes(); + for ( int j = 0; j < attributes.getLength(); ++j ) { + attr = (Attr) attributes.item(j); + attrName = attr.getNodeName(); + attrValue = attr.getNodeValue(); + if ( attrName.equals("name") && attrValue.equals(javaTypeName)) { + NodeList valNodes = javaTypeElement.getElementsByTagName("xml-root-element"); + Element valElement = (Element) valNodes.item(0); + attributes = valElement.getAttributes(); + for ( int k = 0; k < attributes.getLength(); ++k ) { + attr = (Attr) attributes.item(k); + attrName = attr.getNodeName(); + + attrValue = attr.getNodeValue(); + if ( attrName.equals("name")) + return (attrValue); + } + } + } + } + return null; + } + + public Map getCombinedJavaTypes() { + return combinedJavaTypes; + } + + public void setCombinedJavaTypes(Map combinedJavaTypes) { + this.combinedJavaTypes = combinedJavaTypes; + } + + public Element getJavaTypeElementSwagger( String javaTypeName ) + { + + String attrName, attrValue; + Attr attr; + Element javaTypeElement; + + List combineElementList = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + javaTypeElement = (Element) javaTypeNodes.item(i); + NamedNodeMap attributes = javaTypeElement.getAttributes(); + for ( int j = 0; j < attributes.getLength(); ++j ) { + attr = (Attr) attributes.item(j); + attrName = attr.getNodeName(); + attrValue = attr.getNodeValue(); + if ( attrName.equals("name") && attrValue.equals(javaTypeName)) { + combineElementList.add(javaTypeElement); + } + } + } + if ( combineElementList.size() == 0 ) { + return (Element) null; + } else if ( combineElementList.size() > 1 ) { + return combineElements( javaTypeName, combineElementList); + } + return combineElementList.get(0); + } + + public boolean versionSupportsSwaggerDiff( String version) { + int ver = new Integer(version.substring(1)).intValue(); + if ( ver >= HTMLfromOXM.swaggerDiffStartVersion ) { + return true; + } + return false; + } + + public boolean versionSupportsBasePathProperty( String version) { + int ver = new Integer(version.substring(1)).intValue(); + if ( ver <= HTMLfromOXM.swaggerMinBasepath ) { + return true; + } + return false; + } + + protected void updateParentXmlElements(Element parentElement, NodeList moreXmlElementNodes) { + Element xmlElement; + NodeList childNodes; + Node childNode; + + Node refChild = null; + // find childNode with attributes and no children, insert children before that node + childNodes = parentElement.getChildNodes(); + if ( childNodes == null || childNodes.getLength() == 0 ) { + // should not happen since the base parent was chosen if it had children + return; + } + + for ( int i = 0; i < childNodes.getLength(); ++i ) { + refChild = childNodes.item(i); + if ( refChild.hasAttributes() && !refChild.hasChildNodes()) { + break; + } + + } + + for ( int i = 0; i < moreXmlElementNodes.getLength(); ++i ) { + xmlElement = (Element)moreXmlElementNodes.item(i); + childNode = xmlElement.cloneNode(true); + parentElement.insertBefore(childNode, refChild); + } + } + + protected Node getXmlPropertiesNode(Element javaTypeElement ) { + NodeList nl = javaTypeElement.getChildNodes(); + Node child; + for ( int i = 0; i < nl.getLength(); ++i ) { + child = nl.item(i); + if ( "xml-properties".equals(child.getNodeName())) { + return child; + } + } + return null; + } + + protected Node merge( NodeList nl, Node mergeNode ) { + NamedNodeMap nnm = mergeNode.getAttributes(); + Node childNode; + NamedNodeMap childNnm; + + String mergeName = nnm.getNamedItem("name").getNodeValue(); + String mergeValue = nnm.getNamedItem("value").getNodeValue(); + String childName; + String childValue; + for ( int j = 0; j < nl.getLength(); ++j ) { + childNode = nl.item(j); + if ( "xml-property".equals(childNode.getNodeName())) { + childNnm = childNode.getAttributes(); + childName = childNnm.getNamedItem("name").getNodeValue(); + childValue = childNnm.getNamedItem("value").getNodeValue(); + if ( childName.equals(mergeName)) { + // attribute exists + // keep, replace or update + if ( childValue.contains(mergeValue) ) { + return null; + } + if ( mergeValue.contains(childValue) ) { + childNnm.getNamedItem("value").setTextContent(mergeValue); + return null; + } + childNnm.getNamedItem("value").setTextContent(mergeValue + "," + childValue); + return null; + } + } + } + childNode = mergeNode.cloneNode(true); + return childNode; + } + + protected void mergeXmlProperties(Node useChildProperties, NodeList propertiesToMerge ) { + NodeList nl = useChildProperties.getChildNodes(); + Node childNode; + Node newNode; + for ( int i = 0; i < propertiesToMerge.getLength(); ++i ) { + childNode = propertiesToMerge.item(i); + if ( "xml-property".equals(childNode.getNodeName()) ) { + newNode = merge(nl, childNode); + if ( newNode != null ) { + useChildProperties.appendChild(newNode); + } + } + + } + } + + protected void combineXmlProperties(int useElement, List combineElementList) { + // add or update xml-properties to the referenced element from the combined list + Element javaTypeElement = combineElementList.get(useElement); + NodeList nl = javaTypeElement.getChildNodes(); + Node useChildProperties = getXmlPropertiesNode( javaTypeElement); + int cloneChild = -1; + Node childProperties; + if ( useChildProperties == null ) { + // find xml-properties to clone + for ( int i = 0; i < combineElementList.size(); ++i ) { + if ( i == useElement ) { + continue; + } + childProperties = getXmlPropertiesNode(combineElementList.get(i)); + if ( childProperties != null ) { + useChildProperties = childProperties.cloneNode(true); + javaTypeElement.appendChild(useChildProperties); + cloneChild = i; + } + } + } + NodeList cnl; + // find other xml-properties + for ( int i = 0; i < combineElementList.size(); ++i ) { + if ( i == useElement|| ( cloneChild >= 0 && i <= cloneChild )) { + continue; + } + childProperties = getXmlPropertiesNode(combineElementList.get(i)); + if ( childProperties == null ) { + continue; + } + cnl = childProperties.getChildNodes(); + mergeXmlProperties( useChildProperties, cnl); + } + + } + + protected Element combineElements( String javaTypeName, List combineElementList ) { + Element javaTypeElement; + NodeList parentNodes; + Element parentElement = null; + NodeList xmlElementNodes; + + int useElement = -1; + if ( combinedJavaTypes.containsKey( javaTypeName) ) { + return combineElementList.get((int)combinedJavaTypes.get(javaTypeName)); + } + for ( int i = 0; i < combineElementList.size(); ++i ) { + javaTypeElement = combineElementList.get(i); + parentNodes = javaTypeElement.getElementsByTagName("java-attributes"); + if ( parentNodes.getLength() == 0 ) { + continue; + } + parentElement = (Element)parentNodes.item(0); + xmlElementNodes = parentElement.getElementsByTagName("xml-element"); + if ( xmlElementNodes.getLength() <= 0 ) { + continue; + } + useElement = i; + break; + } + boolean doCombineElements = true; + if ( useElement < 0 ) { + useElement = 0; + doCombineElements = false; + } else if ( useElement == combineElementList.size() - 1) { + doCombineElements = false; + } + if ( doCombineElements ) { + // get xml-element from other javaTypeElements + Element otherParentElement = null; + for ( int i = 0; i < combineElementList.size(); ++i ) { + if ( i == useElement ) { + continue; + } + javaTypeElement = combineElementList.get(i); + parentNodes = javaTypeElement.getElementsByTagName("java-attributes"); + if ( parentNodes.getLength() == 0 ) { + continue; + } + otherParentElement = (Element)parentNodes.item(0); + xmlElementNodes = otherParentElement.getElementsByTagName("xml-element"); + if ( xmlElementNodes.getLength() <= 0 ) { + continue; + } + // xml-element that are not present + updateParentXmlElements( parentElement, xmlElementNodes); + + } + } + // need to combine xml-properties + combineXmlProperties(useElement, combineElementList ); + combinedJavaTypes.put( javaTypeName, useElement); + return combineElementList.get(useElement); + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java new file mode 100644 index 0000000..27882b7 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java @@ -0,0 +1,113 @@ +/** + * ============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.schemagen.genxsd; + +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.schemagen.GenerateXsd; + +import java.util.StringTokenizer; + +public class PatchOperation { + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + + public PatchOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams = pathParams; + } + + public String toString() { + StringTokenizer st; + st = new StringTokenizer(path, "/"); + //a valid tag is necessary + if ( StringUtils.isEmpty(tag) ) { + return ""; + } + if ( path.contains("/relationship/") ) { // filter paths with relationship-list + return ""; + } + if ( path.endsWith("/relationship-list")) { + return ""; + } + if ( path.startsWith("/search")) { + return ""; + } + //No Patch operation paths end with "relationship" + + if (path.endsWith("/relationship") ) { + return ""; + } + if (!path.endsWith("}")) { + return ""; + } + + StringBuffer pathSb = new StringBuffer(); + StringBuffer relationshipExamplesSb = new StringBuffer(); + if ( path.endsWith("/relationship") ) { + pathSb.append(" " + path + ":\n" ); + } + pathSb.append(" patch:\n"); + pathSb.append(" tags:\n"); + pathSb.append(" - " + tag + "\n"); + + if ( path.endsWith("/relationship") ) { + pathSb.append(" summary: see node definition for valid relationships\n"); + relationshipExamplesSb.append("[See Examples](apidocs/relations/"+GenerateXsd.getAPIVersion()+"/"+useOpId+".json)"); + } else { + pathSb.append(" summary: update an existing " + xmlRootElementName + "\n"); + pathSb.append(" description: |\n"); + pathSb.append(" Update an existing " + xmlRootElementName + "\n"); + pathSb.append(" #\n"); + pathSb.append(" Note: Endpoints that are not devoted to object relationships support both PUT and PATCH operations.\n"); + pathSb.append(" The PUT operation will entirely replace an existing object.\n"); + pathSb.append(" The PATCH operation sends a \"description of changes\" for an existing object. The entire set of changes must be applied. An error result means no change occurs.\n"); + pathSb.append(" #\n"); + pathSb.append(" Other differences between PUT and PATCH are:\n"); + pathSb.append(" #\n"); + pathSb.append(" - For PATCH, you can send any of the values shown in sample REQUEST body. There are no required values.\n"); + pathSb.append(" - For PATCH, resource-id which is a required REQUEST body element for PUT, must not be sent.\n"); + pathSb.append(" - PATCH cannot be used to update relationship elements; there are dedicated PUT operations for this.\n"); + } + pathSb.append(" operationId: Update" + useOpId + "\n"); + pathSb.append(" consumes:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" produces:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" responses:\n"); + pathSb.append(" \"default\":\n"); + pathSb.append(" " + GenerateXsd.getResponsesUrl()); + pathSb.append(" parameters:\n"); + pathSb.append(pathParams); // for nesting + pathSb.append(" - name: body\n"); + pathSb.append(" in: body\n"); + pathSb.append(" description: " + xmlRootElementName + " object that needs to be updated."+relationshipExamplesSb.toString()+"\n"); + pathSb.append(" required: true\n"); + pathSb.append(" schema:\n"); + pathSb.append(" $ref: \"#/patchDefinitions/" + xmlRootElementName + "\"\n"); + return pathSb.toString(); + } + } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java new file mode 100644 index 0000000..3e69565 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java @@ -0,0 +1,118 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2018 IBM. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.aai.schemagen.genxsd; + +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.schemagen.GenerateXsd; + +public class PutOperation { + public static final String RELATIONSHIP = "relationship"; + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + private SchemaVersion version; + + public PutOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, SchemaVersion v) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams = pathParams; + this.version = v; + } + + @Override + public String toString() { + //a valid tag is necessary + if ( StringUtils.isEmpty(tag) ) { + return ""; + } + //All Put operation paths end with "relationship" + //or there is a parameter at the end of the path + //and there is a parameter in the path + if ( path.contains("/"+RELATIONSHIP+"/") ) { // filter paths with relationship-list + return ""; + } + if ( path.endsWith("/"+RELATIONSHIP+"-list")) { + return ""; + } + if ( !path.endsWith("/"+RELATIONSHIP) && !path.endsWith("}") ) { + return ""; + } + if ( path.startsWith("/search")) { + return ""; + } + StringBuffer pathSb = new StringBuffer(); + StringBuffer relationshipExamplesSb = new StringBuffer(); + if ( path.endsWith("/"+RELATIONSHIP) ) { + pathSb.append(" " + path + ":\n" ); + } + pathSb.append(" put:\n"); + pathSb.append(" tags:\n"); + pathSb.append(" - " + tag + "\n"); + + if ( path.endsWith("/"+RELATIONSHIP) ) { + pathSb.append(" summary: see node definition for valid relationships\n"); + } else { + pathSb.append(" summary: create or update an existing " + xmlRootElementName + "\n"); + pathSb.append(" description: |\n Create or update an existing " + xmlRootElementName + ".\n #\n Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement. An example can be found in the [PATCH section] below\n"); + } + relationshipExamplesSb.append("[Valid relationship examples shown here](apidocs/relations/"+version.toString()+"/"+useOpId.replace("RelationshipListRelationship", "")+".json)"); + pathSb.append(" operationId: createOrUpdate" + useOpId + "\n"); + pathSb.append(" consumes:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" - application/xml\n"); + pathSb.append(" produces:\n"); + pathSb.append(" - application/json\n"); + pathSb.append(" - application/xml\n"); + pathSb.append(" responses:\n"); + pathSb.append(" \"default\":\n"); + pathSb.append(" " + GenerateXsd.getResponsesUrl()); + + pathSb.append(" parameters:\n"); + pathSb.append(pathParams); // for nesting + pathSb.append(" - name: body\n"); + pathSb.append(" in: body\n"); + pathSb.append(" description: " + xmlRootElementName + " object that needs to be created or updated. "+relationshipExamplesSb.toString()+"\n"); + pathSb.append(" required: true\n"); + pathSb.append(" schema:\n"); + String useElement = xmlRootElementName; + if ( xmlRootElementName.equals("relationship")) { + useElement += "-dict"; + } + pathSb.append(" $ref: \"#/definitions/" + useElement + "\"\n"); + this.tagRelationshipPathMapEntry(); + return pathSb.toString(); + } + + public String tagRelationshipPathMapEntry() { + if ( path.endsWith("/"+RELATIONSHIP) ) { + PutRelationPathSet.add(useOpId, path); + } + return ""; + } + + } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java new file mode 100644 index 0000000..c666d9f --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java @@ -0,0 +1,218 @@ +/** + * ============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.schemagen.genxsd; + +import com.google.common.collect.Multimap; +import org.apache.commons.text.similarity.LevenshteinDistance; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.edges.EdgeRule; +import org.onap.aai.edges.EdgeRuleQuery; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.schemagen.GenerateXsd; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.*; + +public class PutRelationPathSet { + EdgeIngestor ei; + private static final Logger logger = LoggerFactory.getLogger("PutRelationPathSet.class"); + protected static HashMap putRelationPaths = new HashMap(); + public static void add(String useOpId, String path) { + putRelationPaths.put(useOpId, path); + } + + String apiPath; + String opId; + SchemaVersion version; + protected ArrayList relations = new ArrayList(); + String objectName = ""; + + public PutRelationPathSet(SchemaVersion v) { + this.version = v; + } + + public PutRelationPathSet(String opId, String path, SchemaVersion v) { + this.apiPath = path.replace("/relationship-list/relationship", ""); + this.opId = opId; + this.version = v; + objectName = DeleteOperation.deletePaths.get(apiPath); + logger.debug("II-apiPath: "+apiPath+"\nPath: "+path+"\nopId="+opId+"\nobjectName="+objectName); + } + private void process(EdgeIngestor edgeIngestor) { + this.ei = edgeIngestor; + this.toRelations(); + this.fromRelations(); + this.writeRelationsFile(); + + } + private void toRelations() { + logger.debug("{“comment”: “Valid TO Relations that can be added”},"); + logger.debug("apiPath: "+apiPath+"\nopId="+opId+"\nobjectName="+objectName); + try { + + EdgeRuleQuery q1 = new EdgeRuleQuery.Builder("ToOnly",objectName).version(version).build(); + Multimap results = ei.getRules(q1); + relations.add("{\"comment\": \"Valid TO Relations that can be added\"}\n"); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (! i.isPrivateEdge())).forEach((i) ->{ String rel = selectedRelation(i); relations.add(rel); logger.debug("Relation added: "+rel); } ); + } + } catch(Exception e) { + logger.debug("objectName: "+objectName+"\n"+e); + } + } + private String selectedRelation(EdgeRule rule) { + String selectedRelation = ""; + EdgeDescription ed = new EdgeDescription(rule); + logger.debug(ed.getRuleKey()+"Type="+ed.getType()); + String obj = ed.getRuleKey().replace(objectName,"").replace("|",""); + + if(ed.getType() == EdgeDescription.LineageType.UNRELATED) { + String selectObj = getUnrelatedObjectPaths(obj, apiPath); + logger.debug("SelectedObj"+selectObj); + selectedRelation = formatObjectRelationSet(obj,selectObj); + logger.trace("ObjectRelationSet"+selectedRelation); + } else { + String selectObj = getKinObjectPath(obj, apiPath); + logger.debug("SelectedObj"+selectObj); + selectedRelation = formatObjectRelation(obj,selectObj); + logger.trace("ObjectRelationSet"+selectedRelation); + } + return selectedRelation; + } + + private void fromRelations() { + logger.debug("“comment”: “Valid FROM Relations that can be added”"); + try { + + EdgeRuleQuery q1 = new EdgeRuleQuery.Builder(objectName,"FromOnly").version(version).build(); + Multimap results = ei.getRules(q1); + relations.add("{\"comment\": \"Valid FROM Relations that can be added\"}\n"); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (! i.isPrivateEdge())).forEach((i) ->{ String rel = selectedRelation(i); relations.add(rel); logger.debug("Relation added: "+rel); } ); + } + } catch(Exception e) { + logger.debug("objectName: "+objectName+"\n"+e); + } + } + private void writeRelationsFile() { + File examplefilePath = new File(GenerateXsd.getYamlDir() + "/relations/" + version.toString()+"/"+opId.replace("RelationshipListRelationship", "") + ".json"); + + logger.debug(String.join("exampleFilePath: ", examplefilePath.toString())); + FileOutputStream fop = null; + try { + if (!examplefilePath.exists()) { + examplefilePath.getParentFile().mkdirs(); + examplefilePath.createNewFile(); + } + fop = new FileOutputStream(examplefilePath); + } catch(Exception e) { + e.printStackTrace(); + return; + } + try { + if(relations.size() > 0) {fop.write("[\n".getBytes());} + fop.write(String.join(",\n", relations).getBytes()); + if(relations.size() > 0) {fop.write("\n]\n".getBytes());} + fop.flush(); + fop.close(); + } catch (Exception e) { + e.printStackTrace(); + return; + } + finally{ + try { + fop.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + logger.debug(String.join(",\n", relations)); + return; + } + + private static String formatObjectRelationSet(String obj, String selectObj) { + StringBuffer pathSb = new StringBuffer(); + String[] paths = selectObj.split("[|]"); + for (String s: paths) { + logger.trace("SelectOBJ"+s); + pathSb.append(formatObjectRelation(obj, s)+",\n"); + } + pathSb.deleteCharAt(pathSb.length()-2); + return pathSb.toString(); + } + + private static String formatObjectRelation(String obj, String selectObj) { + StringBuffer pathSb = new StringBuffer(); + pathSb.append("{\n"); + pathSb.append("\"related-to\" : \""+obj+"\",\n"); + pathSb.append("\"related-link\" : \""+selectObj+"\"\n"); + pathSb.append("}"); + return pathSb.toString(); + } + + private static String getKinObjectPath(String obj, String apiPath) { + LevenshteinDistance proximity = new LevenshteinDistance(); + String targetPath = ""; + int targetScore = Integer.MAX_VALUE; + int targetMaxScore = 0; + for (Map.Entry p : DeleteOperation.deletePaths.entrySet()) { + if(p.getValue().equals(obj)) { + targetScore = (targetScore >= proximity.apply(apiPath, p.getKey())) ? proximity.apply(apiPath, p.getKey()) : targetScore; + targetPath = (targetScore >= proximity.apply(apiPath, p.getKey())) ? p.getKey() : targetPath; + targetMaxScore = (targetMaxScore <= proximity.apply(apiPath, p.getKey())) ? proximity.apply(apiPath, p.getKey()) : targetScore; + logger.trace(proximity.apply(apiPath, p.getKey())+":"+p.getKey()); + logger.trace(proximity.apply(apiPath, p.getKey())+":"+apiPath); + } + } + return targetPath; + } + + private static String getUnrelatedObjectPaths(String obj, String apiPath) { + String targetPath = ""; + logger.trace("Obj:"+obj +"\n" + apiPath); + for (Map.Entry p : DeleteOperation.deletePaths.entrySet()) { + if(p.getValue().equals(obj)) { + logger.trace("p.getvalue:"+p.getValue()+"p.getkey:"+p.getKey()); + targetPath += ((targetPath.length() == 0 ? "" : "|") + p.getKey()); + logger.trace("Match:"+apiPath +"\n" + targetPath); + } + } + return targetPath; + } + + public void generateRelations(EdgeIngestor edgeIngestor) { + putRelationPaths.forEach((k,v)->{ + logger.trace("k="+k+"\n"+"v="+v+v.equals("/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/relationship-list/relationship")); + logger.debug("apiPath(Operation): "+v); + logger.debug("Target object: "+v.replace("/relationship-list/relationship", "")); + logger.debug("Relations: "); + PutRelationPathSet prp = new PutRelationPathSet(k, v, this.version); + prp.process(edgeIngestor); + }); + } + +} + diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java new file mode 100644 index 0000000..3ee9495 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java @@ -0,0 +1,725 @@ +/** + * ============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.schemagen.genxsd; + +import com.google.common.base.Joiner; +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.setup.SchemaVersion; +import org.w3c.dom.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; +import java.util.Vector; + +public class XSDElement implements Element { + Element xmlElementElement; + String maxOccurs; + private static final int VALUE_NONE = 0; + private static final int VALUE_DESCRIPTION = 1; + private static final int VALUE_INDEXED_PROPS = 2; + private static final int VALUE_CONTAINER = 3; + private static final int VALUE_REQUIRES = 4; + + public XSDElement(Element xmlElementElement, String maxOccurs) { + super(); + this.xmlElementElement = xmlElementElement; + this.maxOccurs = maxOccurs; + } + + public XSDElement(Element xmlElementElement) { + super(); + this.xmlElementElement = xmlElementElement; + this.maxOccurs = null; + } + + public String name() { + return this.getAttribute("name"); + } + + public Vector getAddTypes(String version) { + String apiVersionFmt = "." + version + "."; + NamedNodeMap attributes = this.getAttributes(); + Vector addTypeV = new Vector(); // vector of 1 + String addType = null; + + for ( int j = 0; j < attributes.getLength(); ++j ) { + Attr attr = (Attr) attributes.item(j); + String attrName = attr.getNodeName(); + + String attrValue = attr.getNodeValue(); + if ( attrName.equals("type")) { + if ( attrValue.contains(apiVersionFmt) ) { + addType = attrValue.substring(attrValue.lastIndexOf('.')+1); + if ( addTypeV == null ) + addTypeV = new Vector(); + addTypeV.add(addType); + } + + } + } + return addTypeV; + } + + public String getRequiresProperty() { + String elementAlsoRequiresProperty = null; + NodeList xmlPropNodes = this.getElementsByTagName("xml-properties"); + + for ( int i = 0; i < xmlPropNodes.getLength(); ++i ) { + Element xmlPropElement = (Element)xmlPropNodes.item(i); + if (! xmlPropElement.getParentNode().getAttributes().getNamedItem("name").getNodeValue().equals(this.xmlElementElement.getAttribute("name"))){ + continue; + } + NodeList childNodes = xmlPropElement.getElementsByTagName("xml-property"); + + for ( int j = 0; j < childNodes.getLength(); ++j ) { + Element childElement = (Element)childNodes.item(j); + // get name + int useValue = VALUE_NONE; + NamedNodeMap attributes = childElement.getAttributes(); + for ( int k = 0; k < attributes.getLength(); ++k ) { + Attr attr = (Attr) attributes.item(k); + String attrName = attr.getNodeName(); + String attrValue = attr.getNodeValue(); + if ( attrName == null || attrValue == null ) + continue; + if ( attrName.equals("name") && attrValue.equals("requires")) { + useValue = VALUE_REQUIRES; + } + if ( useValue == VALUE_REQUIRES && attrName.equals("value")) { + elementAlsoRequiresProperty = attrValue; + } + } + } + } + return elementAlsoRequiresProperty; + } + + public String getPathDescriptionProperty() { + String pathDescriptionProperty = null; + NodeList xmlPropNodes = this.getElementsByTagName("xml-properties"); + + for ( int i = 0; i < xmlPropNodes.getLength(); ++i ) { + Element xmlPropElement = (Element)xmlPropNodes.item(i); + if (! xmlPropElement.getParentNode().getAttributes().getNamedItem("name").getNodeValue().equals(this.xmlElementElement.getAttribute("name"))){ + continue; + } +// This stopped working, replaced with above - should figure out why... +// if ( !xmlPropElement.getParentNode().isSameNode(this.xmlElementElement)) +// continue; + NodeList childNodes = xmlPropElement.getElementsByTagName("xml-property"); + + for ( int j = 0; j < childNodes.getLength(); ++j ) { + Element childElement = (Element)childNodes.item(j); + // get name + int useValue = VALUE_NONE; + NamedNodeMap attributes = childElement.getAttributes(); + for ( int k = 0; k < attributes.getLength(); ++k ) { + Attr attr = (Attr) attributes.item(k); + String attrName = attr.getNodeName(); + String attrValue = attr.getNodeValue(); + if ( attrName == null || attrValue == null ) + continue; + if ( attrName.equals("name") && attrValue.equals("description")) { + useValue = VALUE_DESCRIPTION; + } + if ( useValue == VALUE_DESCRIPTION && attrName.equals("value")) { + pathDescriptionProperty = attrValue; + } + } + } + } + return pathDescriptionProperty; + } + public Vector getIndexedProps() { + Vector indexedProps = new Vector(); + NodeList xmlPropNodes = this.getElementsByTagName("xml-properties"); + + for ( int i = 0; i < xmlPropNodes.getLength(); ++i ) { + Element xmlPropElement = (Element)xmlPropNodes.item(i); + if ( !xmlPropElement.getParentNode().isSameNode(this.xmlElementElement)) + continue; + NodeList childNodes = xmlPropElement.getElementsByTagName("xml-property"); + for ( int j = 0; j < childNodes.getLength(); ++j ) { + Element childElement = (Element)childNodes.item(j); + // get name + int useValue = VALUE_NONE; + NamedNodeMap attributes = childElement.getAttributes(); + for ( int k = 0; k < attributes.getLength(); ++k ) { + Attr attr = (Attr) attributes.item(k); + String attrName = attr.getNodeName(); + String attrValue = attr.getNodeValue(); + if ( attrName == null || attrValue == null ) + continue; + if ( attrValue.equals("indexedProps")) { + useValue = VALUE_INDEXED_PROPS; + } + if ( useValue == VALUE_INDEXED_PROPS && attrName.equals("value")) { + indexedProps = getIndexedProps( attrValue ); + } + } + } + } + return indexedProps; + } + + private static Vector getIndexedProps( String attrValue ) + { + if ( attrValue == null ) + return null; + StringTokenizer st = new StringTokenizer( attrValue, ","); + if ( st.countTokens() == 0 ) + return null; + Vector result = new Vector(); + while ( st.hasMoreTokens()) { + result.add(st.nextToken()); + } + return result; + } + + public String getContainerProperty() { + NodeList xmlPropNodes = this.getElementsByTagName("xml-properties"); + String container = null; + for ( int i = 0; i < xmlPropNodes.getLength(); ++i ) { + Element xmlPropElement = (Element)xmlPropNodes.item(i); + if ( !xmlPropElement.getParentNode().isSameNode(this.xmlElementElement)) + continue; + NodeList childNodes = xmlPropElement.getElementsByTagName("xml-property"); + for ( int j = 0; j < childNodes.getLength(); ++j ) { + Element childElement = (Element)childNodes.item(j); + // get name + int useValue = VALUE_NONE; + NamedNodeMap attributes = childElement.getAttributes(); + for ( int k = 0; k < attributes.getLength(); ++k ) { + Attr attr = (Attr) attributes.item(k); + String attrName = attr.getNodeName(); + String attrValue = attr.getNodeValue(); + if ( attrName == null || attrValue == null ) + continue; + if ( useValue == VALUE_CONTAINER && attrName.equals("value")) { + container = attrValue; + } + if ( attrValue.equals("container")) { + useValue = VALUE_CONTAINER; + } + } + } + } + return container; + } + + public String getQueryParamYAML() { + StringBuffer sbParameter = new StringBuffer(); + sbParameter.append((" - name: " + this.getAttribute("name") + "\n")); + sbParameter.append((" in: query\n")); + if ( this.getAttribute("description") != null && this.getAttribute("description").length() > 0 ) + sbParameter.append((" description: " + this.getAttribute("description") + "\n")); + else + sbParameter.append((" description:\n")); + sbParameter.append((" required: false\n")); + if ( ("java.lang.String").equals(this.getAttribute("type"))) + sbParameter.append(" type: string\n"); + if ( ("java.lang.Long").equals(this.getAttribute("type"))) { + sbParameter.append(" type: integer\n"); + sbParameter.append(" format: int64\n"); + } + if ( ("java.lang.Integer").equals(this.getAttribute("type"))) { + sbParameter.append(" type: integer\n"); + sbParameter.append(" format: int32\n"); + } + if ( ("java.lang.Boolean").equals(this.getAttribute("type"))) { + sbParameter.append(" type: boolean\n"); + } + return sbParameter.toString(); + } + + public String getPathParamYAML(String elementDescription) { + StringBuffer sbParameter = new StringBuffer(); + sbParameter.append((" - name: " + this.getAttribute("name") + "\n")); + sbParameter.append((" in: path\n")); + if ( elementDescription != null && elementDescription.length() > 0 ) + sbParameter.append((" description: " + elementDescription + "\n")); + sbParameter.append((" required: true\n")); + if ( ("java.lang.String").equals(this.getAttribute("type"))) + sbParameter.append(" type: string\n"); + if ( ("java.lang.Long").equals(this.getAttribute("type"))) { + sbParameter.append(" type: integer\n"); + sbParameter.append(" format: int64\n"); + } + if ( ("java.lang.Integer").equals(this.getAttribute("type"))) { + sbParameter.append(" type: integer\n"); + sbParameter.append(" format: int32\n"); + } + if ( ("java.lang.Boolean").equals(this.getAttribute("type"))) { + sbParameter.append(" type: boolean\n"); + } + if(StringUtils.isNotBlank(this.getAttribute("name"))) { + sbParameter.append(" example: "+"__"+this.getAttribute("name").toUpperCase()+"__"+"\n"); + } + return sbParameter.toString(); + } + + public String getHTMLElement(SchemaVersion v, boolean useAnnotation, HTMLfromOXM driver) { + StringBuffer sbElement = new StringBuffer(); + String elementName = this.getAttribute("name"); + String elementType = this.getAttribute("type"); + String elementContainerType = this.getAttribute("container-type"); + String elementIsRequired = this.getAttribute("required"); + String addType = elementType.contains("." + v.toString() + ".") ? elementType.substring(elementType.lastIndexOf('.')+1) : null; + + if ( addType != null ) { + sbElement.append(" " + OxmFileProcessor.LINE_SEPARATOR : ""); + sbElement.append(annotation); + sbElement.append(StringUtils.isNotEmpty(annotation) ? " " + OxmFileProcessor.LINE_SEPARATOR : "/>" + OxmFileProcessor.LINE_SEPARATOR ); + } else { + sbElement.append("/>" + OxmFileProcessor.LINE_SEPARATOR); + } + return this.getHTMLElementWrapper(sbElement.toString(), v, useAnnotation); +// return sbElement.toString(); + } + + public String getHTMLElementWrapper(String unwrappedElement, SchemaVersion v, boolean useAnnotation) { + + NodeList childNodes = this.getElementsByTagName("xml-element-wrapper"); + + String xmlElementWrapper = null; + if ( childNodes.getLength() > 0 ) { + Element childElement = (Element)childNodes.item(0); + // get name + xmlElementWrapper = childElement == null ? null : childElement.getAttribute("name"); + } + if(xmlElementWrapper == null) + return unwrappedElement; + + StringBuffer sbElement = new StringBuffer(); + sbElement.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sbElement.append(" " + OxmFileProcessor.LINE_SEPARATOR); + if(useAnnotation) { + XSDElement javaTypeElement = new XSDElement((Element)this.getParentNode(), maxOccurs); + sbElement.append(javaTypeElement.getHTMLAnnotation("class", " ")); + } + sbElement.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sbElement.append(" "); + sbElement.append(unwrappedElement); + sbElement.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sbElement.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sbElement.append(" " + OxmFileProcessor.LINE_SEPARATOR); + return sbElement.toString(); + } + + public String getHTMLAnnotation(String target, String indentation) { + StringBuffer sb = new StringBuffer(); + List metadata = new ArrayList<>(); + if("true".equals(this.getAttribute("xml-key")) ) { + metadata.add("isKey=true"); + } + + NodeList xmlPropTags = this.getElementsByTagName("xml-properties"); + Element xmlPropElement = null; + for ( int i = 0; i < xmlPropTags.getLength(); ++i ) { + xmlPropElement = (Element)xmlPropTags.item(i); + if (! xmlPropElement.getParentNode().getAttributes().getNamedItem("name").getNodeValue().equals(this.xmlElementElement.getAttribute("name"))) + continue; + else + break; + } + if(xmlPropElement != null) { + NodeList xmlProperties = xmlPropElement.getElementsByTagName("xml-property"); + for (int i = 0; i < xmlProperties.getLength(); i++) { + Element item = (Element)xmlProperties.item(i); + String name = item.getAttribute("name"); + String value = item.getAttribute("value"); + if (name.equals("abstract")) { + name = "isAbstract"; + } else if (name.equals("extends")) { + name = "extendsFrom"; + } + metadata.add(name + "=\"" + value.replaceAll("&", "&") + "\""); + } + } + if(metadata.size() == 0) { + return ""; + } + sb.append(indentation +"" + OxmFileProcessor.LINE_SEPARATOR); + sb.append( + indentation + " " + OxmFileProcessor.LINE_SEPARATOR + + indentation + " @org.onap.aai.annotations.Metadata(" + Joiner.on(",").join(metadata) + ")" + OxmFileProcessor.LINE_SEPARATOR + + indentation + " " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(indentation +"" + OxmFileProcessor.LINE_SEPARATOR); + return sb.toString(); + } + + public String getTypePropertyYAML() { + StringBuffer sbProperties = new StringBuffer(); + sbProperties.append(" " + this.getAttribute("name") + ":\n"); + sbProperties.append(" type: "); + + if ( ("java.lang.String").equals(this.getAttribute("type"))) + sbProperties.append("string\n"); + else if ( ("java.lang.Long").equals(this.getAttribute("type"))) { + sbProperties.append("integer\n"); + sbProperties.append(" format: int64\n"); + } + else if ( ("java.lang.Integer").equals(this.getAttribute("type"))){ + sbProperties.append("integer\n"); + sbProperties.append(" format: int32\n"); + } + else if ( ("java.lang.Boolean").equals(this.getAttribute("type"))) + sbProperties.append("boolean\n"); + String attrDescription = this.getPathDescriptionProperty(); + if ( attrDescription != null && attrDescription.length() > 0 ) + sbProperties.append(" description: " + attrDescription + "\n"); + String elementAlsoRequiresProperty=this.getRequiresProperty(); + if ( StringUtils.isNotEmpty(elementAlsoRequiresProperty) ) + sbProperties.append(" also requires: " + elementAlsoRequiresProperty + "\n"); + return sbProperties.toString(); + } + + public boolean isStandardType() + { + switch ( this.getAttribute("type") ) { + case "java.lang.String": + case "java.lang.Long": + case "java.lang.Integer": + case"java.lang.Boolean": + return true; + } + return false; + } + + @Override + public String getNodeName() { + return xmlElementElement.getNodeName(); + } + + @Override + public String getNodeValue() throws DOMException { + return xmlElementElement.getNodeValue(); + } + + @Override + public void setNodeValue(String nodeValue) throws DOMException { + xmlElementElement.setNodeValue(nodeValue); + } + + @Override + public short getNodeType() { + return xmlElementElement.getNodeType(); + } + + @Override + public Node getParentNode() { + return xmlElementElement.getParentNode(); + } + + @Override + public NodeList getChildNodes() { + return xmlElementElement.getChildNodes(); + } + + @Override + public Node getFirstChild() { + return xmlElementElement.getFirstChild(); + } + + @Override + public Node getLastChild() { + return xmlElementElement.getLastChild(); + } + + @Override + public Node getPreviousSibling() { + return xmlElementElement.getPreviousSibling(); + } + + @Override + public Node getNextSibling() { + return xmlElementElement.getNextSibling(); + } + + @Override + public NamedNodeMap getAttributes() { + return xmlElementElement.getAttributes(); + } + + @Override + public Document getOwnerDocument() { + return xmlElementElement.getOwnerDocument(); + } + + @Override + public Node insertBefore(Node newChild, Node refChild) throws DOMException { + return xmlElementElement.insertBefore(newChild, refChild); + } + + @Override + public Node replaceChild(Node newChild, Node oldChild) throws DOMException { + return xmlElementElement.replaceChild(newChild, oldChild); + } + + @Override + public Node removeChild(Node oldChild) throws DOMException { + return xmlElementElement.removeChild(oldChild); + } + + @Override + public Node appendChild(Node newChild) throws DOMException { + return xmlElementElement.appendChild(newChild); + } + + @Override + public boolean hasChildNodes() { + return xmlElementElement.hasChildNodes(); + } + + @Override + public Node cloneNode(boolean deep) { + return xmlElementElement.cloneNode(deep); + } + + @Override + public void normalize() { + xmlElementElement.normalize(); + } + + @Override + public boolean isSupported(String feature, String version) { + return xmlElementElement.isSupported(feature, version); + } + + @Override + public String getNamespaceURI() { + return xmlElementElement.getNamespaceURI(); + } + + @Override + public String getPrefix() { + return xmlElementElement.getPrefix(); + } + + @Override + public void setPrefix(String prefix) throws DOMException { + xmlElementElement.setPrefix(prefix); + } + + @Override + public String getLocalName() { + + return xmlElementElement.getLocalName(); + } + + @Override + public boolean hasAttributes() { + return xmlElementElement.hasAttributes(); + } + + @Override + public String getBaseURI() { + return xmlElementElement.getBaseURI(); + } + + @Override + public short compareDocumentPosition(Node other) throws DOMException { + return xmlElementElement.compareDocumentPosition(other); + } + + @Override + public String getTextContent() throws DOMException { + return xmlElementElement.getTextContent(); + } + + @Override + public void setTextContent(String textContent) throws DOMException { + xmlElementElement.setTextContent(textContent); + } + + @Override + public boolean isSameNode(Node other) { + return xmlElementElement.isSameNode(other); + } + + @Override + public String lookupPrefix(String namespaceURI) { + return xmlElementElement.lookupPrefix(namespaceURI); + } + + @Override + public boolean isDefaultNamespace(String namespaceURI) { + return xmlElementElement.isDefaultNamespace(namespaceURI); + } + + @Override + public String lookupNamespaceURI(String prefix) { + return xmlElementElement.lookupNamespaceURI(prefix); + } + + @Override + public boolean isEqualNode(Node arg) { + return xmlElementElement.isEqualNode(arg); + } + + @Override + public Object getFeature(String feature, String version) { + return xmlElementElement.getFeature(feature, version); + } + + @Override + public Object setUserData(String key, Object data, UserDataHandler handler) { + return xmlElementElement.setUserData(key, data, handler); + } + + @Override + public Object getUserData(String key) { + return xmlElementElement.getUserData(key); + } + + @Override + public String getTagName() { + return xmlElementElement.getTagName(); + } + + @Override + public String getAttribute(String name) { + return xmlElementElement.getAttribute(name); + } + + @Override + public void setAttribute(String name, String value) throws DOMException { + xmlElementElement.setAttribute(name, value); + } + + @Override + public void removeAttribute(String name) throws DOMException { + xmlElementElement.removeAttribute(name); + } + + @Override + public Attr getAttributeNode(String name) { + return xmlElementElement.getAttributeNode(name); + } + + @Override + public Attr setAttributeNode(Attr newAttr) throws DOMException { + return xmlElementElement.setAttributeNode(newAttr); + } + + @Override + public Attr removeAttributeNode(Attr oldAttr) throws DOMException { + return xmlElementElement.removeAttributeNode(oldAttr); + } + + @Override + public NodeList getElementsByTagName(String name) { + return xmlElementElement.getElementsByTagName(name); + } + + @Override + public String getAttributeNS(String namespaceURI, String localName) throws DOMException { + return xmlElementElement.getAttributeNS(namespaceURI, localName); + } + + @Override + public void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException { + xmlElementElement.setAttributeNS(namespaceURI, qualifiedName, value); + return; + } + + @Override + public void removeAttributeNS(String namespaceURI, String localName) throws DOMException { + xmlElementElement.removeAttributeNS(namespaceURI, localName); + } + + @Override + public Attr getAttributeNodeNS(String namespaceURI, String localName) throws DOMException { + return xmlElementElement.getAttributeNodeNS(namespaceURI, localName); + } + + @Override + public Attr setAttributeNodeNS(Attr newAttr) throws DOMException { + return xmlElementElement.setAttributeNodeNS(newAttr); + } + + @Override + public NodeList getElementsByTagNameNS(String namespaceURI, String localName) throws DOMException { + return xmlElementElement.getElementsByTagNameNS(namespaceURI, localName); + } + + @Override + public boolean hasAttribute(String name) { + return xmlElementElement.hasAttribute(name); + } + + @Override + public boolean hasAttributeNS(String namespaceURI, String localName) throws DOMException { + return xmlElementElement.hasAttributeNS(namespaceURI, localName); + } + + @Override + public TypeInfo getSchemaTypeInfo() { + return xmlElementElement.getSchemaTypeInfo(); + } + + @Override + public void setIdAttribute(String name, boolean isId) throws DOMException { + xmlElementElement.setIdAttribute(name, isId); + + } + + @Override + public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws DOMException { + xmlElementElement.setIdAttributeNS(namespaceURI, localName, isId); + } + + @Override + public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException { + xmlElementElement.setIdAttributeNode(idAttr, isId); + return; + } + + +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java new file mode 100644 index 0000000..80ab79b --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java @@ -0,0 +1,64 @@ +/** + * ============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.schemagen.genxsd; + +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +public class XSDJavaType extends XSDElement { + StringBuffer pathSb; + StringBuffer definitionsSb; + StringBuffer pathParams; + + public XSDJavaType(Element javaTypeElement) { + super(javaTypeElement); + } +/* + public XSDJavaType(XSDElement javaTypeElement, StringBuffer pathSb, StringBuffer definitionsSb, + StringBuffer pathParams) { + super(javaTypeElement); + this.pathSb = pathSb; + this.definitionsSb = definitionsSb; + this.pathParams = pathParams; + } +*/ + public String getItemName() { + NodeList parentNodes = this.getElementsByTagName("java-attributes"); + if(parentNodes.getLength() == 0) + return null; + Element parentElement = (Element)parentNodes.item(0); + NodeList xmlElementNodes = parentElement.getElementsByTagName("xml-element"); + XSDElement xmlElementElement = new XSDElement((Element)xmlElementNodes.item(0)); + return xmlElementElement.getAttribute("name"); + } + + public String getArrayType() { + NodeList parentNodes = this.getElementsByTagName("java-attributes"); + if(parentNodes.getLength() == 0) + return null; + Element parentElement = (Element)parentNodes.item(0); + NodeList xmlElementNodes = parentElement.getElementsByTagName("xml-element"); + XSDElement xmlElementElement = new XSDElement((Element)xmlElementNodes.item(0)); + if ( xmlElementElement.hasAttribute("container-type") && xmlElementElement.getAttribute("container-type").equals("java.util.ArrayList")) { + return xmlElementElement.getAttribute("name"); + } + return null; + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java new file mode 100644 index 0000000..6e2af57 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java @@ -0,0 +1,590 @@ +/** + * ============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.schemagen.genxsd; + +import com.google.common.collect.Multimap; +import org.apache.commons.lang3.StringUtils; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.edges.EdgeRule; +import org.onap.aai.edges.EdgeRuleQuery; +import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + + +public class YAMLfromOXM extends OxmFileProcessor { + private static final Logger logger = LoggerFactory.getLogger("YAMLfromOXM.class"); +// private static StringBuffer totalPathSbAccumulator = new StringBuffer(); + private static final String root = "../aai-schema/src/main/resources"; + private static final String autoGenRoot = "aai-schema/src/main/resources"; + private static final String generateTypeYAML = "yaml"; + private static final String normalStartDir = "aai-schema-gen"; + private static final String yaml_dir = (((System.getProperty("user.dir") != null) && (!System.getProperty("user.dir").contains(normalStartDir))) ? autoGenRoot : root) + "/aai_swagger_yaml"; + private StringBuilder inventoryDefSb = null; + + + private String basePath; + + public YAMLfromOXM(String basePath, SchemaVersions schemaVersions, NodeIngestor ni, EdgeIngestor ei){ + super(schemaVersions, ni,ei); + this.basePath = basePath; + } + public void setOxmVersion(File oxmFile, SchemaVersion v) { + super.setOxmVersion(oxmFile, v); + } + public void setXmlVersion(String xml, SchemaVersion v){ + super.setXmlVersion(xml, v); + } + + public void setVersion(SchemaVersion v) { + super.setVersion(v); + } + + @Override + public String getDocumentHeader() { + StringBuffer sb = new StringBuffer(); + sb.append("swagger: \"2.0\"\ninfo:\n "); + sb.append("description: |"); + if ( versionSupportsSwaggerDiff(v.toString())) { + sb.append("\n\n [Differences versus the previous schema version](" + "apidocs/aai_swagger_" + v.toString() + ".diff)"); + } + sb.append("\n\n Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.\n\n Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.\n\n You may obtain a copy of the License at\n\n (https://creativecommons.org/licenses/by/4.0/)\n\n 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.\n\n This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions.\n version: \"" + v.toString() +"\"\n"); + sb.append(" title: Active and Available Inventory REST API\n"); + sb.append(" license:\n name: Apache 2.0\n url: http://www.apache.org/licenses/LICENSE-2.0.html\n"); + sb.append(" contact:\n name:\n url:\n email:\n"); + sb.append("host:\nbasePath: " + basePath + "/" + v.toString() + "\n"); + sb.append("schemes:\n - https\npaths:\n"); + return sb.toString(); + } + + protected void init() throws ParserConfigurationException, SAXException, IOException, FileNotFoundException, EdgeRuleNotFoundException { + super.init(); + } + + @Override + public String process() throws ParserConfigurationException, SAXException, IOException, FileNotFoundException, EdgeRuleNotFoundException { + StringBuffer sb = new StringBuffer(); + StringBuffer pathSb = new StringBuffer(); + try { + init(); + } catch(Exception e) { + logger.error( "Error initializing " + this.getClass(),e); + throw e; + } + pathSb.append(getDocumentHeader()); + StringBuffer definitionsSb = new StringBuffer(); + Element elem; + String javaTypeName; + combinedJavaTypes = new HashMap(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + elem = (Element)javaTypeNodes.item(i); + javaTypeName = elem.getAttribute("name"); + if ( !"Inventory".equals(javaTypeName ) ) { + if ( generatedJavaType.containsKey(getXmlRootElementName(javaTypeName) ) ) { + continue; + } + // will combine all matching java-types + elem = getJavaTypeElementSwagger(javaTypeName ); + } + + XSDElement javaTypeElement = new XSDElement(elem); + if ( javaTypeName == null ) { + String msg = "Invalid OXM file: has no name attribute in " + oxmFile; + logger.error(msg); + throw new SAXException(msg); + } + namespaceFilter.add(getXmlRootElementName(javaTypeName)); + processJavaTypeElementSwagger( javaTypeName, javaTypeElement, pathSb, + definitionsSb, null, null, null, null, null, null); + } + sb.append(pathSb); + + sb.append(appendDefinitions()); + PutRelationPathSet prp = new PutRelationPathSet(v); + prp.generateRelations(ei); + return sb.toString(); + } + + public String appendDefinitions() { + return appendDefinitions(null); + } + + public String appendDefinitions(Set namespaceFilter) { + //append definitions + if ( inventoryDefSb != null ) { + javaTypeDefinitions.put("inventory", inventoryDefSb.toString()); + } + StringBuffer sb = new StringBuffer("definitions:\n"); + Map sortedJavaTypeDefinitions = new TreeMap(javaTypeDefinitions); + for (Map.Entry entry : sortedJavaTypeDefinitions.entrySet()) { +// logger.info("Key: "+entry.getKey()+"Value: "+ entry.getValue()); + if(namespaceFilter != null && entry.getKey().matches("service-capabilities")) { + for(String tally : namespaceFilter) { logger.debug("Marker: "+tally);} + } + if(namespaceFilter != null && (! namespaceFilter.contains(entry.getKey()))) { + continue; + } + logger.debug("Key: "+entry.getKey()+"Test: "+ (entry.getKey() == "relationship-dict")); + if(entry.getKey().matches("relationship-dict")) { + String jb=entry.getValue(); + logger.debug("Value: "+jb); + int ndx=jb.indexOf("related-to-property:"); + if(ndx > 0) { + jb=jb.substring(0, ndx); + jb=jb.replaceAll(" +$", ""); + } + logger.debug("Value-after: "+jb); + sb.append(jb); + continue; + } + sb.append(entry.getValue()); + } + + sb.append("patchDefinitions:\n"); + for (Map.Entry entry : sortedJavaTypeDefinitions.entrySet()) { + if(namespaceFilter != null && (! namespaceFilter.contains(entry.getKey()))) { + continue; + } + String jb=entry.getValue().replaceAll("/definitions/", "/patchDefinitions/"); + int ndx=jb.indexOf("relationship-list:"); + if(ndx > 0) { + jb=jb.substring(0, ndx); + jb=jb.replaceAll(" +$", ""); + } + int ndx1=jb.indexOf("resource-version:"); + logger.debug("Key: "+entry.getKey()+" index: " + ndx1); + logger.debug("Value: "+jb); + if(ndx1 > 0) { + jb=jb.substring(0, ndx1); + jb=jb.replaceAll(" +$", ""); + } + logger.debug("Value-after: "+jb); + sb.append(jb); + } + + sb.append("getDefinitions:\n"); + for (Map.Entry entry : sortedJavaTypeDefinitions.entrySet()) { + if(namespaceFilter != null && (! namespaceFilter.contains(entry.getKey()))) { + continue; + } + String jb=entry.getValue().replaceAll("/definitions/", "/getDefinitions/"); + sb.append(jb); + } + return sb.toString(); + } + + private String getDictionary(String resource ) { + StringBuffer dictSb = new StringBuffer(); + dictSb.append(" " + resource + ":\n"); + dictSb.append(" description: |\n"); + dictSb.append(" dictionary of " + resource + "\n" ); + dictSb.append(" type: object\n"); + dictSb.append(" properties:\n"); + dictSb.append(" " + resource + ":\n"); + dictSb.append(" type: array\n"); + dictSb.append(" items:\n"); + dictSb.append(" $ref: \"#/definitions/" + resource + "-dict\"\n"); + return dictSb.toString(); + } + + private String processJavaTypeElementSwagger( String javaTypeName, Element javaTypeElement, + StringBuffer pathSb, StringBuffer definitionsSb, String path, String tag, String opId, + String getItemName, StringBuffer pathParams, String validEdges) { + + String xmlRootElementName = getXMLRootElementName(javaTypeElement); + StringBuilder definitionsLocalSb = new StringBuilder(256); + + String useTag = null; + String useOpId = null; + logger.debug("tag="+tag); + if ( tag != null ) { + switch ( tag ) { + case "Network": + case "ServiceDesignAndCreation": + case "Business": + case "LicenseManagement": + case "CloudInfrastructure": + case "Common": + break; + default: + logger.debug("javaTypeName="+javaTypeName); + return null; + } + } + + if ( !javaTypeName.equals("Inventory") ) { + if ( javaTypeName.equals("AaiInternal")) + return null; + if ( opId == null ) + useOpId = javaTypeName; + else + useOpId = opId + javaTypeName; + if ( tag == null ) + useTag = javaTypeName; + } + path = xmlRootElementName.equals("inventory") ? "" : (path == null) ? "/" + xmlRootElementName : path + "/" + xmlRootElementName; + XSDJavaType javaType = new XSDJavaType(javaTypeElement); + if ( getItemName != null) { + if ( getItemName.equals("array") ) + return javaType.getArrayType(); + else + return javaType.getItemName(); + } + + NodeList parentNodes = javaTypeElement.getElementsByTagName("java-attributes"); + if ( parentNodes.getLength() == 0 ) { + logger.debug( "no java-attributes for java-type " + javaTypeName); + return ""; + } + + String pathDescriptionProperty = javaType.getPathDescriptionProperty(); + String container = javaType.getContainerProperty(); + Vector indexedProps = javaType.getIndexedProps(); + Vector containerProps = new Vector(); + if(container != null) { + logger.debug("javaTypeName " + javaTypeName + " container:" + container +" indexedProps:"+indexedProps); + } + + Element parentElement = (Element)parentNodes.item(0); + NodeList xmlElementNodes = parentElement.getElementsByTagName("xml-element"); + + StringBuffer sbParameters = new StringBuffer(); + StringBuffer sbRequired = new StringBuffer(); + int requiredCnt = 0; + int propertyCnt = 0; + StringBuffer sbProperties = new StringBuffer(); + + if ( appliedPaths.containsKey(path)) + return null; + + StringTokenizer st = new StringTokenizer(path, "/"); + logger.debug("path: " + path + " st? " + st.toString()); + if ( st.countTokens() > 1 && getItemName == null ) { + logger.debug("appliedPaths: " + appliedPaths + " containsKey? " + appliedPaths.containsKey(path)); + appliedPaths.put(path, xmlRootElementName); + } + + Vector addTypeV = null; + for ( int i = 0; i < xmlElementNodes.getLength(); ++i ) { + XSDElement xmlElementElement = new XSDElement((Element)xmlElementNodes.item(i)); + if ( !xmlElementElement.getParentNode().isSameNode(parentElement)) + continue; + String elementDescription=xmlElementElement.getPathDescriptionProperty(); + if(getItemName == null) { + addTypeV = xmlElementElement.getAddTypes(v.toString()); + } + if ( "true".equals(xmlElementElement.getAttribute("xml-key"))) { + path += "/{" + xmlElementElement.getAttribute("name") + "}"; + } + logger.debug("path: " + path); + logger.debug( "xmlElementElement.getAttribute(required):"+xmlElementElement.getAttribute("required") ); + + if ( ("true").equals(xmlElementElement.getAttribute("required"))) { + if ( requiredCnt == 0 ) + sbRequired.append(" required:\n"); + ++requiredCnt; + if ( addTypeV == null || addTypeV.isEmpty()) { + sbRequired.append(" - " + xmlElementElement.getAttribute("name") + "\n"); + } else { + for ( int k = 0; k < addTypeV.size(); ++k ) { + sbRequired.append(" - " + getXmlRootElementName(addTypeV.elementAt(k)) + ":\n"); + } + } + } + + if ( "true".equals(xmlElementElement.getAttribute("xml-key")) ) { + sbParameters.append(xmlElementElement.getPathParamYAML(elementDescription)); + } + if ( indexedProps != null + && indexedProps.contains(xmlElementElement.getAttribute("name") ) ) { + containerProps.add(xmlElementElement.getQueryParamYAML()); + GetOperation.addContainerProps(container, containerProps); + } + if ( xmlElementElement.isStandardType()) { + sbProperties.append(xmlElementElement.getTypePropertyYAML()); + ++propertyCnt; + } + + StringBuffer newPathParams = new StringBuffer((pathParams == null ? "" : pathParams.toString())+sbParameters.toString()); + for ( int k = 0; addTypeV != null && k < addTypeV.size(); ++k ) { + String addType = addTypeV.elementAt(k); + namespaceFilter.add(getXmlRootElementName(addType)); + logger.debug("addType: "+ addType); + + if ( opId == null || !opId.contains(addType)) { + processJavaTypeElementSwagger( addType, getJavaTypeElementSwagger(addType), + pathSb, definitionsSb, path, tag == null ? useTag : tag, useOpId, null, + newPathParams, validEdges); + } + // need item name of array + String itemName = processJavaTypeElementSwagger( addType, getJavaTypeElementSwagger(addType), + pathSb, definitionsSb, path, tag == null ? useTag : tag, useOpId, + "array", null, null ); + + if ( itemName != null ) { + if ( addType.equals("AaiInternal") ) { + logger.debug( "addType AaiInternal, skip properties"); + + } else if ( getItemName == null) { + ++propertyCnt; + sbProperties.append(" " + getXmlRootElementName(addType) + ":\n"); + sbProperties.append(" type: array\n items:\n"); + sbProperties.append(" $ref: \"#/definitions/" + (itemName == "" ? "inventory-item-data" : itemName) + "\"\n"); + if ( StringUtils.isNotEmpty(elementDescription) ) + sbProperties.append(" description: " + elementDescription + "\n"); + } + } else { + if ( ("java.util.ArrayList").equals(xmlElementElement.getAttribute("container-type"))) { + // need properties for getXmlRootElementName(addType) + namespaceFilter.add(getXmlRootElementName(addType)); + newPathParams = new StringBuffer((pathParams == null ? "" : pathParams.toString())+sbParameters.toString()); + processJavaTypeElementSwagger( addType, getJavaTypeElementSwagger(addType), + pathSb, definitionsSb, path, tag == null ? useTag : tag, useOpId, + null, newPathParams, validEdges ); + sbProperties.append(" " + getXmlRootElementName(addType) + ":\n"); + sbProperties.append(" type: array\n items: \n"); + sbProperties.append(" $ref: \"#/definitions/" + getXmlRootElementName(addType) + "\"\n"); + if ( StringUtils.isNotEmpty(elementDescription) ) + sbProperties.append(" description: " + elementDescription + "\n"); + + } else { + //Make sure certain types added to the filter don't appear + if(nodeFilter.contains(getXmlRootElementName(addType))) { + ; + } else { + sbProperties.append(" " + getXmlRootElementName(addType) + ":\n"); + sbProperties.append(" type: object\n"); + sbProperties.append(" $ref: \"#/definitions/" + getXmlRootElementName(addType) + "\"\n"); + } + } + if ( StringUtils.isNotEmpty(elementDescription) ) + sbProperties.append(" description: " + elementDescription + "\n"); + ++propertyCnt; + } + } + } + + if ( sbParameters.toString().length() > 0 ) { + if ( pathParams == null ) + pathParams = new StringBuffer(); + pathParams.append(sbParameters); + } + GetOperation get = new GetOperation(useOpId, xmlRootElementName, tag, path, pathParams == null ? "" : pathParams.toString()); + pathSb.append(get.toString()); + logger.debug("opId vs useOpId:"+opId+" vs "+useOpId+" PathParams="+pathParams); + // add PUT + PutOperation put = new PutOperation(useOpId, xmlRootElementName, tag, path, pathParams == null ? "" : pathParams.toString(), this.v); + pathSb.append(put.toString()); + // add PATCH + PatchOperation patch = new PatchOperation(useOpId, xmlRootElementName, tag, path, pathParams == null ? "" : pathParams.toString()); + pathSb.append(patch.toString()); + // add DELETE + DeleteOperation del = new DeleteOperation(useOpId, xmlRootElementName, tag, path, pathParams == null ? "" : pathParams.toString()); + pathSb.append(del.toString()); + if ( generatedJavaType.containsKey(xmlRootElementName) ) { + logger.debug("xmlRootElementName(1)="+xmlRootElementName); + return null; + } + + boolean processingInventoryDef = false; + String dict = null; + if ( xmlRootElementName.equals("inventory")) { + // inventory properties for each oxm to be concatenated + processingInventoryDef = true; + if ( inventoryDefSb == null ) { + inventoryDefSb = new StringBuilder(); + definitionsSb.append(" " + xmlRootElementName + ":\n"); + definitionsLocalSb.append(" " + xmlRootElementName + ":\n"); + definitionsLocalSb.append(" properties:\n"); + } + } else if ( xmlRootElementName.equals("relationship")) { + definitionsSb.append(" " + "relationship-dict" + ":\n"); + definitionsLocalSb.append(" " + "relationship-dict" + ":\n"); + dict = getDictionary(xmlRootElementName); + } else { + definitionsSb.append(" " + xmlRootElementName + ":\n"); + definitionsLocalSb.append(" " + xmlRootElementName + ":\n"); + } +// Collection edges = edgeRuleSet.getEdgeRules(xmlRootElementName ); + DeleteFootnoteSet footnotes = new DeleteFootnoteSet(xmlRootElementName); + StringBuffer sbEdge = new StringBuffer(); + LinkedHashSet preventDelete = new LinkedHashSet(); + String prevent=null; + String nodeCaption = new String(" ###### Related Nodes\n"); + try { + EdgeRuleQuery q = new EdgeRuleQuery.Builder(xmlRootElementName).version(v).fromOnly().build(); + Multimap results = ei.getRules(q); + SortedSet ss=new TreeSet(results.keySet()); + sbEdge.append(nodeCaption); + nodeCaption=""; + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getFrom().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ logger.info(new String(new StringBuffer(" - TO ").append(i.getTo()).append(i.getDirection().toString()).append(i.getContains())));} ); + results.get(key).stream().filter((i) -> (i.getFrom().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ sbEdge.append(" - TO "+i.getTo()); EdgeDescription ed = new EdgeDescription(i); String footnote = ed.getAlsoDeleteFootnote(xmlRootElementName); sbEdge.append(ed.getRelationshipDescription("TO", xmlRootElementName)+footnote+"\n"); if(StringUtils.isNotEmpty(footnote)) footnotes.add(footnote);} ); + results.get(key).stream().filter((i) -> (i.getFrom().equals(xmlRootElementName) && (! i.isPrivateEdge() && i.getPreventDelete().equals("OUT")))).forEach((i) ->{ preventDelete.add(i.getTo().toUpperCase());} ); + } + } catch(Exception e) { + logger.debug("xmlRootElementName: "+xmlRootElementName+" from edge exception\n", e); + } + try { + EdgeRuleQuery q1 = new EdgeRuleQuery.Builder(xmlRootElementName).version(v).toOnly().build(); + Multimap results = ei.getRules(q1); + SortedSet ss=new TreeSet(results.keySet()); + sbEdge.append(nodeCaption); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ sbEdge.append(" - FROM "+i.getFrom()); EdgeDescription ed = new EdgeDescription(i); String footnote = ed.getAlsoDeleteFootnote(xmlRootElementName); sbEdge.append(ed.getRelationshipDescription("FROM", xmlRootElementName)+footnote+"\n"); if(StringUtils.isNotEmpty(footnote)) footnotes.add(footnote);} ); + results.get(key).stream().filter((i) -> (i.getTo().equals(xmlRootElementName) && (! i.isPrivateEdge()))).forEach((i) ->{ logger.info(new String(new StringBuffer(" - FROM ").append(i.getFrom()).append(i.getDirection().toString()).append(i.getContains())));} ); + results.get(key).stream().filter((i) -> (i.getTo().equals(xmlRootElementName) && (! i.isPrivateEdge() && i.getPreventDelete().equals("IN")))).forEach((i) ->{ preventDelete.add(i.getFrom().toUpperCase());} ); + } + } catch(Exception e) { + logger.debug("xmlRootElementName: "+xmlRootElementName+" to edge exception\n", e); + } + if(preventDelete.size() > 0) { + prevent = xmlRootElementName.toUpperCase()+" cannot be deleted if related to "+String.join(",",preventDelete); + logger.debug(prevent); + } + + if(StringUtils.isNotEmpty(prevent)) { + footnotes.add(prevent); + } + if(footnotes.footnotes.size() > 0) { + sbEdge.append(footnotes.toString()); + } + validEdges = sbEdge.toString(); + + // Handle description property. Might have a description OR valid edges OR both OR neither. + // Only put a description: tag if there is at least one. + if (StringUtils.isNotEmpty(pathDescriptionProperty) || StringUtils.isNotEmpty(validEdges) ) { + definitionsSb.append(" description: |\n"); + definitionsLocalSb.append(" description: |\n"); + + if ( pathDescriptionProperty != null ) { + definitionsSb.append(" " + pathDescriptionProperty + "\n" ); + definitionsLocalSb.append(" " + pathDescriptionProperty + "\n" ); + } + definitionsSb.append(validEdges); + definitionsLocalSb.append(validEdges); + } + + if ( requiredCnt > 0 ) { + definitionsSb.append(sbRequired); + definitionsLocalSb.append(sbRequired); + } + + if ( propertyCnt > 0 ) { + definitionsSb.append(" properties:\n"); + definitionsSb.append(sbProperties); + if ( !processingInventoryDef) { + definitionsLocalSb.append(" properties:\n"); + } + definitionsLocalSb.append(sbProperties); + } + try { + namespaceFilter.add(xmlRootElementName); + if ( xmlRootElementName.equals("inventory") ) { + //will add to javaTypeDefinitions at end + inventoryDefSb.append(definitionsLocalSb.toString()); + } else if ( xmlRootElementName.equals("relationship") ){ + javaTypeDefinitions.put(xmlRootElementName, dict); + javaTypeDefinitions.put(xmlRootElementName+ "-dict", definitionsLocalSb.toString()); + } else { + javaTypeDefinitions.put(xmlRootElementName, definitionsLocalSb.toString()); + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("Exception adding in javaTypeDefinitions",e); + } + if ( xmlRootElementName.equals("inventory") ) { + logger.trace("skip xmlRootElementName(2)="+xmlRootElementName); + return null; + } + generatedJavaType.put(xmlRootElementName, null); +/* + if( validTag(javaTypeName) && javaTypeName == useTag && tag == null) { + String nameSpaceResult = getDocumentHeader()+pathSb.toString()+appendDefinitions(namespaceFilter); + writeYAMLfile(javaTypeName, nameSpaceResult); + totalPathSbAccumulator.append(pathSb); + pathSb.delete(0, pathSb.length()); + namespaceFilter.clear(); + } +*/ + logger.trace("xmlRootElementName(2)="+xmlRootElementName); + return null; + } + + private void writeYAMLfile(String outfileName, String fileContent) { + outfileName = (StringUtils.isEmpty(outfileName)) ? "aai_swagger" : outfileName; + outfileName = (outfileName.lastIndexOf(File.separator) == -1) ? yaml_dir + File.separator +outfileName+"_" + v.toString() + "." + generateTypeYAML : outfileName; + File outfile = new File(outfileName); + File parentDir = outfile.getParentFile(); + if(parentDir != null && ! parentDir.exists()) + parentDir.mkdirs(); + try { + outfile.createNewFile(); + } catch (IOException e) { + logger.error( "Exception creating output file " + outfileName); + e.printStackTrace(); + } + try { + Charset charset = Charset.forName("UTF-8"); + Path path = Paths.get(outfileName); + try(BufferedWriter bw = Files.newBufferedWriter(path, charset)){ + bw.write(fileContent); + } + } catch ( IOException e) { + logger.error( "Exception writing output file " + outfileName); + e.printStackTrace(); + } + } + + public boolean validTag(String tag) { + if(tag != null) { + switch ( tag ) { + case "Network": +// case "Search": +// case "Actions": + case "ServiceDesignAndCreation": + case "Business": + case "LicenseManagement": + case "CloudInfrastructure": + case "Common": + return true; + } + } + return false; + } + +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java new file mode 100644 index 0000000..717b710 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java @@ -0,0 +1,318 @@ +/** + * ============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.schemagen.swagger; + +import java.util.List; +import java.util.Map; + +public class Api { + + private String path; + + private List httpMethods; + + private String tag; + + public List getHttpMethods() { + return httpMethods; + } + + public void setHttpMethods(List httpMethods) { + this.httpMethods = httpMethods; + } + + public String getTag(){ + + if(this.tag != null){ + return this.tag; + } + + if(this.httpMethods != null){ + if(this.httpMethods.size() != 0){ + if(this.httpMethods.get(0).getTags() != null){ + if(this.httpMethods.get(0).getTags().size() != 0){ + this.tag = this.httpMethods.get(0).getTags().get(0); + } + } + } + } + + if(this.tag == null){ + this.tag = ""; + } + + return this.tag; + } + + @Override + public String toString() { + return "Api{" + + "path='" + path + '\'' + + ", httpMethods=" + httpMethods + + '}'; + } + + public void setPath(String path) { + this.path = path; + } + + public String getPath() { + return this.path; + } + + public String getOperation(){ + + if(this.path != null){ + return this.path.replaceAll("[^a-zA-Z0-9\\-]", "-") + "-"; + } + + return ""; + } + + public static class HttpVerb { + + private List tags; + + private String type; + + private String summary; + + private String operationId; + + private List consumes; + + private boolean consumerEnabled; + + private List produces; + + private List responses; + + private List> parameters; + + private Map bodyParameters; + + private boolean bodyParametersEnabled; + + private boolean parametersEnabled; + + private String schemaLink; + + private String schemaType; + + private boolean hasReturnSchema; + + private String returnSchemaLink; + + private String returnSchemaObject; + + public void setConsumerEnabled(boolean consumerEnabled){ + this.consumerEnabled = consumerEnabled; + } + + public boolean isConsumerEnabled() { + return consumerEnabled; + } + + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getOperationId() { + return operationId; + } + + public void setOperationId(String operationId) { + this.operationId = operationId; + } + + public List getConsumes() { + return consumes; + } + + public void setConsumes(List consumes) { + this.consumes = consumes; + } + + public List getProduces() { + return produces; + } + + public void setProduces(List produces) { + this.produces = produces; + } + + public List getResponses() { + return responses; + } + + public void setResponses(List responses) { + this.responses = responses; + } + + public List> getParameters() { + return parameters; + } + + public void setParameters(List> parameters) { + this.parameters = parameters; + } + + @Override + public String toString() { + return "HttpVerb{" + + "tags=" + tags + + ", type='" + type + '\'' + + ", summary='" + summary + '\'' + + ", operationId='" + operationId + '\'' + + ", consumes=" + consumes + + ", produces=" + produces + + ", responses=" + responses + + ", parameters=" + parameters + + '}'; + } + + public void setParametersEnabled(boolean b) { + this.parametersEnabled = b; + } + + public boolean isParametersEnabled() { + return parametersEnabled; + } + + public boolean isBodyParametersEnabled() { + return bodyParametersEnabled; + } + public boolean isOpNotPatch() { + return type.equalsIgnoreCase("patch") ? false : true; + } + + public void setBodyParametersEnabled(boolean bodyParametersEnabled) { + this.bodyParametersEnabled = bodyParametersEnabled; + } + + public Map getBodyParameters() { + return bodyParameters; + } + + public void setBodyParameters(Map bodyParameters) { + this.bodyParameters = bodyParameters; + } + + public String getSchemaLink() { + return schemaLink; + } + + public void setSchemaLink(String schemaLink) { + this.schemaLink = schemaLink; + } + + public String getSchemaType() { + return schemaType; + } + + public void setSchemaType(String schemaType) { + this.schemaType = schemaType; + } + + public boolean isHasReturnSchema() { + return hasReturnSchema; + } + + public void setHasReturnSchema(boolean hasReturnSchema) { + this.hasReturnSchema = hasReturnSchema; + } + + public String getReturnSchemaLink() { + return returnSchemaLink; + } + + public void setReturnSchemaLink(String returnSchemaLink) { + this.returnSchemaLink = returnSchemaLink; + } + + public String getReturnSchemaObject() { + return returnSchemaObject; + } + + public void setReturnSchemaObject(String returnSchemaObject) { + this.returnSchemaObject = returnSchemaObject; + } + + public static class Response { + + private String responseCode; + + private String description; + + private String version; + + public String getResponseCode() { + return responseCode; + } + + public void setResponseCode(String responseCode) { + this.responseCode = responseCode; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + return "Response{" + + "responseCode='" + responseCode + '\'' + + ", description='" + description + '\'' + + '}'; + } + + public void setVersion(String version) { + this.version = version; + } + } + + } + +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java new file mode 100644 index 0000000..4a52020 --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java @@ -0,0 +1,198 @@ +/** + * ============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.schemagen.swagger; + +import java.util.List; + +public class Definition { + + private String definitionName; + + private String definitionDescription; + + private List propertyList; + + private List schemaPropertyList; + + private List regularPropertyList; + + private boolean hasDescription; + + public String getDefinitionName() { + return definitionName; + } + + public void setDefinitionName(String definitionName) { + this.definitionName = definitionName; + } + + public List getPropertyList() { + return propertyList; + } + + public void setPropertyList(List propertyList) { + this.propertyList = propertyList; + } + + public String getDefinitionDescription() { + return definitionDescription; + } + + public void setDefinitionDescription(String definitionDescription) { + this.definitionDescription = definitionDescription; + } + + @Override + public String toString() { + return "Definition{" + + "definitionName='" + definitionName + '\'' + + ", definitionDescription='" + definitionDescription + '\'' + + ", propertyList=" + propertyList + + '}'; + } + + public boolean isHasDescription() { + return hasDescription; + } + + public void setHasDescription(boolean hasDescription) { + this.hasDescription = hasDescription; + } + + public List getSchemaPropertyList() { + return schemaPropertyList; + } + + public void setSchemaPropertyList(List schemaPropertyList) { + this.schemaPropertyList = schemaPropertyList; + } + + public List getRegularPropertyList() { + return regularPropertyList; + } + + public void setRegularPropertyList(List regularPropertyList) { + this.regularPropertyList = regularPropertyList; + } + + public static class Property { + + private String propertyName; + + private String propertyDescription; + + private boolean hasPropertyDescription; + + private String propertyType; + + private boolean hasType; + + private String propertyReference; + + private String propertyReferenceObjectName; + + private boolean isRequired; + + private boolean hasPropertyReference; + + public Property(){} + + public String getPropertyName() { + return propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public String getPropertyType() { + return propertyType; + } + + public void setPropertyType(String propertyType) { + this.propertyType = propertyType; + } + + public String getPropertyReference() { + return propertyReference; + } + + public void setPropertyReference(String propertyReference) { + this.propertyReference = propertyReference; + } + + @Override + public String toString() { + return "Property{" + + "propertyName='" + propertyName + '\'' + + ", propertyType='" + propertyType + '\'' + + ", propertyReference='" + propertyReference + '\'' + + '}'; + } + + public boolean isHasType() { + return hasType; + } + + public void setHasType(boolean hasType) { + this.hasType = hasType; + } + + public boolean isRequired() { + return isRequired; + } + + public void setRequired(boolean required) { + isRequired = required; + } + + public boolean isHasPropertyReference() { + return hasPropertyReference; + } + + public void setHasPropertyReference(boolean hasPropertyReference) { + this.hasPropertyReference = hasPropertyReference; + } + + public String getPropertyReferenceObjectName() { + return propertyReferenceObjectName; + } + + public void setPropertyReferenceObjectName(String propertyReferenceObjectName) { + this.propertyReferenceObjectName = propertyReferenceObjectName; + } + + public String getPropertyDescription() { + return propertyDescription; + } + + public void setPropertyDescription(String propertyDescription) { + this.propertyDescription = propertyDescription; + } + + public boolean isHasPropertyDescription() { + return hasPropertyDescription; + } + + public void setHasPropertyDescription(boolean hasPropertyDescription) { + this.hasPropertyDescription = hasPropertyDescription; + } + } +} diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java new file mode 100644 index 0000000..41c88ec --- /dev/null +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java @@ -0,0 +1,487 @@ +/** + * ============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.schemagen.swagger; + +import com.fasterxml.jackson.dataformat.yaml.snakeyaml.Yaml; +import com.fasterxml.jackson.dataformat.yaml.snakeyaml.constructor.SafeConstructor; +import freemarker.template.Configuration; +import freemarker.template.Template; +import freemarker.template.TemplateException; +import org.onap.aai.setup.SchemaVersions; + +import java.io.*; +import java.util.*; +import java.util.stream.Collectors; + +public class GenerateSwagger { + + public static final String LINE_SEPARATOR = System.getProperty("line.separator"); + public static final String DEFAULT_WIKI = ""; + + public static final String DEFAULT_SCHEMA_DIR = "../aai-schema"; + //if the program is run from aai-common, use this directory as default" + public static final String ALT_SCHEMA_DIR = "aai-schema"; + //used to check to see if program is run from aai-schema-gen + public static final String DEFAULT_RUN_DIR = "aai-schema-gen"; + + public static SchemaVersions schemaVersions; + + public SchemaVersions getSchemaVersions() { + return schemaVersions; + } + + + + public static void main(String[] args) throws IOException, TemplateException { + + + + + // SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class); + String CURRENT_VERSION = schemaVersions.getDefaultVersion().toString(); + String schemaDir = System.getProperty("aai.schema.dir"); + String versionToGenerate = System.getProperty("aai.generate.version"); + String wikiLink = System.getProperty("aai.wiki.link"); + String release = System.getProperty("aai.release", "onap"); + + if(schemaDir == null){ + if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { + System.out.println("Warning: Schema directory is not set so using default schema dir: " + ALT_SCHEMA_DIR); + schemaDir = ALT_SCHEMA_DIR; + } + else { + System.out.println("Warning: Schema directory is not set so using default schema dir: " + DEFAULT_SCHEMA_DIR); + schemaDir = DEFAULT_SCHEMA_DIR; + } + } + + if(versionToGenerate == null){ + System.out.println("Warning: Version to generate is not set so using default versionToGenerate " + CURRENT_VERSION); + versionToGenerate = CURRENT_VERSION; + } + + if(wikiLink == null){ + System.out.println("Warning: aai.wiki.link property is not set so using default"); + wikiLink = DEFAULT_WIKI; + } + + String yamlFile = schemaDir + "/src/main/resources/" + release + "/aai_swagger_yaml/aai_swagger_" + versionToGenerate + ".yaml"; + File swaggerYamlFile = new File(yamlFile); + + if(!swaggerYamlFile.exists()){ + System.err.println("Unable to find the swagger yaml file: " + swaggerYamlFile); + System.exit(1); + } + + Yaml yaml = new Yaml(new SafeConstructor()); + Map swaggerMap = null; + + try (BufferedReader reader = new BufferedReader(new FileReader(swaggerYamlFile))){ + swaggerMap = (Map) yaml.load(reader); + } catch(Exception ex){ + ex.printStackTrace(); + } + + if(null == swaggerMap) { + throw new IOException(); + } + + Map map = (Map) swaggerMap.get("paths"); + Map schemaDefinitionmap = (Map) swaggerMap.get("definitions"); + Map infoMap = (Map) swaggerMap.get("info"); + Map> tagMap = new LinkedHashMap<>(); + + List apis = convertToApi(map); + apis.forEach((api) -> { + if(!tagMap.containsKey(api.getTag())){ + List newApis = new ArrayList<>(); + newApis.add(api); + tagMap.put(api.getTag(), newApis); + } else { + tagMap.get(api.getTag()).add(api); + } + }); + + Map> sortedTagMap = new TreeMap<>(tagMap); + sortedTagMap.forEach((key, value) -> { + value.sort(Comparator.comparing(Api::getPath)); + }); + + Map resultMap = new HashMap<>(); + + List definitionList = convertToDefinition(schemaDefinitionmap); + + definitionList = definitionList + .stream().sorted(Comparator.comparing(Definition::getDefinitionName)).collect(Collectors.toList()); + + resultMap.put("aaiApis", tagMap); + resultMap.put("sortedAaiApis", sortedTagMap); + resultMap.put("wikiLink", wikiLink); + resultMap.put("definitions", definitionList); + resultMap.put("version", versionToGenerate); + if (infoMap.containsKey("description")) { + String infoDescription = infoMap.get("description").toString(); + + infoDescription = Arrays.stream(infoDescription.split("\n")) + .map(line -> { + line = line.trim(); + String hyperLink = ""; + if(line.trim().contains("Differences versus")) { + return String.format(""); + } + if(line.trim().contains("https://")){ + int startIndex = line.indexOf("https://"); + int endIndex = line.lastIndexOf("/"); + hyperLink = line.substring(startIndex, endIndex); + return String.format("%s
", hyperLink, line); + } + return String.format("%s
", line); + }) + + .collect(Collectors.joining(LINE_SEPARATOR)); + + resultMap.put("description", infoDescription); + } + + Configuration configuration = new Configuration(); + configuration.setClassForTemplateLoading(Api.class, "/"); + String resourcePath = "src/main/resources"; + if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { + configuration.setDirectoryForTemplateLoading(new File(DEFAULT_RUN_DIR + "/" + resourcePath)); + } + else { + configuration.setDirectoryForTemplateLoading(new File(resourcePath)); + } + Template template = configuration.getTemplate("swagger.html.ftl"); + + String outputDirStr = schemaDir + "/src/main/resources/" + release + "/aai_swagger_html"; + + File outputDir = new File(outputDirStr); + + if(!outputDir.exists()){ + boolean resp = outputDir.mkdir(); + if(!resp){ + System.err.println("Unable to create the directory: " + outputDirStr); + System.exit(1); + } + } else if(outputDir.isFile()){ + System.err.println("Unable to create the directory: " + outputDirStr + " since a filename with that string exists"); + System.exit(1); + } + + Writer file = new FileWriter(new File(outputDirStr + "/aai_swagger_" + versionToGenerate + ".html")); + template.process(resultMap, file); + } + + public static List convertToApi(Map pathMap){ + + if(pathMap == null) + throw new IllegalArgumentException(); + + List apis = new ArrayList<>(); + + pathMap.forEach( (pathKey, pathValue) -> { + + Api api = new Api(); + Map httpVerbMap = (Map) pathValue; + List httpVerbs = new ArrayList<>(); + + api.setPath(pathKey); + + httpVerbMap.forEach((httpVerbKey, httpVerbValue) -> { + + Api.HttpVerb httpVerb = new Api.HttpVerb(); + + Map httpVerbValueMap = (Map)httpVerbValue; + + httpVerb.setType(httpVerbKey); + + if(httpVerbValueMap.containsKey("tags")){ + httpVerb.setTags((List)httpVerbValueMap.get("tags")); + } + + if(httpVerbValueMap.containsKey("summary")){ + httpVerb.setSummary((String)httpVerbValueMap.get("summary")); + } + + if(httpVerbValueMap.containsKey("operationId")){ + httpVerb.setOperationId((String)httpVerbValueMap.get("operationId")); + } + + if(httpVerbValueMap.containsKey("consumes")){ + httpVerb.setConsumes((List)httpVerbValueMap.get("consumes")); + if(httpVerb.getConsumes() != null){ + httpVerb.setConsumerEnabled(true); + } + } + + if(httpVerbValueMap.containsKey("produces")){ + httpVerb.setProduces((List)httpVerbValueMap.get("produces")); + } + + if(httpVerbValueMap.containsKey("parameters")){ + List> parameters = (List>) httpVerbValueMap.get("parameters"); + List> requestParameters = parameters + .stream() + .filter((parameter) -> !parameter.get("name").equals("body")) + .collect(Collectors.toList()); + httpVerb.setParameters(requestParameters); + if(httpVerb.getParameters() != null){ + httpVerb.setParametersEnabled(true); + } + + List> requestBodyList = parameters + .stream() + .filter((parameter) -> parameter.get("name").equals("body")) + .collect(Collectors.toList()); + + Map requestBody = null; + + if(requestBodyList != null && requestBodyList.size() == 1){ + requestBody = requestBodyList.get(0); + for(String key : requestBody.keySet()) { + //Filter out all the relationship links that appear in the YAML + if(key.equals("description")) { + String reqBody=(String)requestBody.get(key); + if(reqBody.replaceAll("\\[.*.json\\)", "") != reqBody) { + requestBody.put(key, reqBody.replaceAll("\\[.*.json\\)", "")); + } + } + //Filter out all the patchDefinition links that appear in the YAML + if(key.equals("schema")) { + LinkedHashMap reqBody = (LinkedHashMap)requestBody.get(key); + String schema=reqBody.get("$ref"); + String schemaNopatch = schema.replace("patchDefinitions", "definitions"); + + if(! schema.equals(schemaNopatch)) { + reqBody.put("$ref", schemaNopatch); + requestBody.put(key, reqBody); + } + } + } + httpVerb.setBodyParametersEnabled(true); + httpVerb.setBodyParameters(requestBody); + + if(requestBody != null && requestBody.containsKey("schema")){ + Map schemaMap = (Map)requestBody.get("schema"); + if(schemaMap != null && schemaMap.containsKey("$ref")){ + String schemaLink = schemaMap.get("$ref").toString(); + httpVerb.setSchemaLink(schemaLink); + int retCode = schemaLink.lastIndexOf('/'); + if(retCode != -1 && retCode != schemaLink.length()){ + httpVerb.setSchemaType(schemaLink.substring(retCode)); + } + } + } + } + } + + if(httpVerbValueMap.containsKey("responses")){ + + List responses = new ArrayList(); + + Map responsesMap = (Map) httpVerbValueMap.get("responses"); + + responsesMap + .entrySet() + .stream() + .filter((res) -> !"default".equalsIgnoreCase(res.getKey())) + .forEach((responseMap) -> { + + Map responseValueMap = (Map)responseMap.getValue(); + + Api.HttpVerb.Response response = new Api.HttpVerb.Response(); + + response.setResponseCode(responseMap.getKey()); + response.setDescription((String) responseValueMap.get("description")); + response.setVersion((String) responseValueMap.get("version")); + + if(responseValueMap != null && responseValueMap.containsKey("schema")){ + Map schemaMap = (Map)responseValueMap.get("schema"); + if(schemaMap != null && schemaMap.containsKey("$ref")){ + String schemaLink = schemaMap.get("$ref").toString(); + httpVerb.setHasReturnSchema(true); + //Filter out all the getDefinition links that appear in the YAML + httpVerb.setReturnSchemaLink(schemaLink.replace("getDefinitions", "definitions")); + int retCode = schemaLink.lastIndexOf('/'); + if(retCode != -1 && retCode != schemaLink.length()){ + httpVerb.setReturnSchemaObject(schemaLink.substring(retCode)); + } + } + } + + responses.add(response); + } + ); + + httpVerb.setResponses(responses); + } + + httpVerbs.add(httpVerb); + }); + + api.setHttpMethods(httpVerbs); + apis.add(api); + }); + + return apis; + } + + public static List convertToDefinition(Map definitionMap) { + + if(definitionMap == null) + throw new IllegalArgumentException(); + + List defintionsList = new ArrayList<>(); + + definitionMap + .entrySet() + .forEach((entry) -> { + + Definition definition = new Definition(); + String key = entry.getKey(); + Map valueMap = (Map) entry.getValue(); + + definition.setDefinitionName(key); + + if(valueMap.containsKey("description")){ + String description = valueMap.get("description").toString(); + description = formatDescription(description); + definition.setDefinitionDescription(description); + definition.setHasDescription(true); + } + + List definitionProperties = new ArrayList<>(); + + List requiredProperties = (valueMap.get("required") == null) ? new ArrayList<>() : (List) valueMap.get("required"); + + Set requiredPropsSet = requiredProperties.stream().collect(Collectors.toSet()); + + valueMap + .entrySet() + .stream() + .filter( (e) -> "properties".equals(e.getKey())) + .forEach((propertyEntries) -> { + Map propertyRealEntries = (Map) propertyEntries.getValue(); + propertyRealEntries + .entrySet() + .forEach((propertyEntry) -> { + Definition.Property definitionProperty = new Definition.Property(); + String propertyKey = propertyEntry.getKey(); + if(requiredPropsSet.contains(propertyKey)){ + definitionProperty.setRequired(true); + } + definitionProperty.setPropertyName(propertyKey); + Map definitionPropertyMap = (Map) propertyEntry.getValue(); + + if(definitionPropertyMap.containsKey("description")){ + definitionProperty.setPropertyDescription(definitionPropertyMap.get("description").toString()); + definitionProperty.setHasPropertyDescription(true); + } + if(definitionPropertyMap.containsKey("type")){ + String type = definitionPropertyMap.get("type").toString(); + definitionProperty.setPropertyType(type); + definitionProperty.setHasType(true); + if ("array".equals(type)) { + definitionProperty.setPropertyType("object[]"); + if(!definitionPropertyMap.containsKey("items")){ + throw new RuntimeException("Unable to find the property items even though the type is array for " + propertyEntry.getKey()); + } else { + Map itemMap = (Map) definitionPropertyMap.get("items"); + if(itemMap.containsKey("$ref")){ + definitionProperty.setHasPropertyReference(true); + String refItem = itemMap.get("$ref").toString(); + int retCode = refItem.lastIndexOf('/'); + if(retCode != -1 && retCode != refItem.length()){ + definitionProperty.setPropertyReferenceObjectName(refItem.substring(retCode + 1)); + } + definitionProperty.setPropertyReference(refItem); + } + } + } else { + if(definitionPropertyMap.containsKey("$ref")){ + definitionProperty.setHasPropertyReference(true); + String refItem = definitionPropertyMap.get("$ref").toString(); + int retCode = refItem.lastIndexOf('/'); + if(retCode != -1 && retCode != refItem.length()){ + definitionProperty.setPropertyReferenceObjectName(refItem.substring(retCode + 1)); + } + definitionProperty.setPropertyReference(refItem); + } + } + } + definitionProperties.add(definitionProperty); + }); + }); + + definition.setPropertyList(definitionProperties); + + List schemaProperties = definitionProperties. + stream() + .filter((o) -> o.isHasPropertyReference()) + .collect(Collectors.toList()); + + List regularProperties = definitionProperties. + stream() + .filter((o) -> !o.isHasPropertyReference()) + .collect(Collectors.toList()); + + definition.setRegularPropertyList(regularProperties); + definition.setSchemaPropertyList(schemaProperties); + + defintionsList.add(definition); + }); + return defintionsList; + } + + public static String formatDescription(String description){ + + description = Arrays.stream(description.split("\n")) + .map((line) -> { + line = line.trim(); + if(line.contains("######")){ + line = line.replaceAll("#", ""); + line = line.trim(); + String headerId = line.toLowerCase().replaceAll("\\s", "-"); + + if(line.contains("Related Nodes")){ + return String.format("
%s
%s
    ", headerId, line, LINE_SEPARATOR); + } else { + return String.format("
    %s
    ", headerId, line); + } + } else if(line.startsWith("-")){ + line = line.replaceFirst("-", ""); + line = line.trim(); + return String.format("
  • %s
  • ", line); + } else { + return String.format("

    %s

    ", line); + } + }) + .collect(Collectors.joining(LINE_SEPARATOR)); + + if(description.contains("
      ")){ + description = description + "
    "; + } + + return description; + } + +} + diff --git a/aai-schema-gen/src/main/resources/swagger.html.ftl b/aai-schema-gen/src/main/resources/swagger.html.ftl new file mode 100644 index 0000000..1a2827f --- /dev/null +++ b/aai-schema-gen/src/main/resources/swagger.html.ftl @@ -0,0 +1,241 @@ +<#-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. + Copyright © 2018 Huawei Technologies (Australia) Pty Ltd. 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. + +--> + + + + + + + Active and Available Inventory REST API. + + +
    +

    Active and Available Inventory REST API.

    +

    Version: ${version}

    +

    ${description}

    +

    + +
    + Schemes: + https +
    + +

    Summary

    +
      + <#list aaiApis?keys as key> +
    1. Tag: ${key} + +
    2. Paths +
    3. Schema definitions +
    + + <#list aaiApis?keys as key> +

    Tag: ${key}

    + + + + + + <#list aaiApis[key] as api> + <#list api.getHttpMethods() as httpVerb> + + + + + + +
    OperationDescription
    + ${httpVerb.getType()?upper_case} ${api.getPath()}

    ${httpVerb.getSummary()}

    + + +

    Paths

    + <#list sortedAaiApis?keys as key> + <#list sortedAaiApis[key] as api> + <#list api.getHttpMethods() as httpVerb> + +
    +
    +
    ${httpVerb.getSummary()}
    +

    ${httpVerb.getType()?upper_case} + ${api.getPath()}

    + Tags: ${api.getTag()} +
    +
    +
    +

    ${httpVerb.getSummary()}

    +
    + <#if httpVerb.isConsumerEnabled()> +
    +

    application/json application/xml

    + <#if httpVerb.isBodyParametersEnabled()> +
    +
    +

    ${httpVerb.getBodyParameters()["description"]}

    +
    +
    + +
    + + <#if httpVerb.isParametersEnabled()> +
    + + + + + + + + + + <#list httpVerb.getParameters() as param> + + + + + + + + +
    ${param["name"]} + <#if param['description']??> +

    ${param["description"]}

    + +
    ${param["in"]} + <#if param['type']??> + ${param["type"]} + + + + <#if param['required']> + + +
    + + +
    +

    application/json application/xml

    +
    + <#list httpVerb.getResponses() as response> +
    + ${response.getResponseCode()} OK +
    +
    +
    +

    successful operation

    +
    +
    + <#if httpVerb.isHasReturnSchema()> + + +
    +
    + +
    default
    +
    +
    +

    Response codes found in response codes.

    +
    +
    +
    +
    +
    +
    +
    + + + + + +

    Schema definitions

    + <#list definitions as definition> +
    +

    + ${definition.getDefinitionName()}: + object + +

    +
    + <#if definition.isHasDescription()> +
    + ${definition.getDefinitionDescription()} +
    + +
    + <#list definition.getRegularPropertyList() as definitionProperty> +
    + ${definitionProperty.getPropertyName()}: + <#if definitionProperty.isHasType()> + ${definitionProperty.getPropertyType()} + + + <#if definitionProperty.isRequired()> + + +
    +
    + <#if definitionProperty.isHasPropertyDescription()> +

    ${definitionProperty.getPropertyDescription()}

    + +
    +
    + + <#list definition.getSchemaPropertyList() as definitionProperty> +
    + ${definitionProperty.getPropertyName()}: + <#if definitionProperty.isHasType()> + ${definitionProperty.getPropertyType()} + + + <#if definitionProperty.isRequired()> + + +
    +
    + +
    +
    + + +
    + + diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/GenerateXsdTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/GenerateXsdTest.java new file mode 100644 index 0000000..b17a0ee --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/GenerateXsdTest.java @@ -0,0 +1,148 @@ +/** + * ============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.schemagen; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.schemagen.genxsd.*; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.onap.aai.schemagen.testutils.TestUtilConfigTranslatorforBusiness; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.io.BufferedWriter; +import java.io.FileWriter; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThat; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { + SchemaLocationsBean.class, + TestUtilConfigTranslatorforBusiness.class, + EdgeIngestor.class, + NodeIngestor.class, + SwaggerGenerationConfiguration.class, + SchemaVersions.class +}) +@TestPropertySource(properties = { + "schema.uri.base.path = /aai", + "schema.xsd.maxoccurs = 5000" +}) +public class GenerateXsdTest { + private static final Logger logger = LoggerFactory.getLogger("GenerateXsd.class"); + private static final String OXMFILENAME = "src/test/resources/oxm/business_oxm_v11.xml"; + private static final String EDGEFILENAME = "src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json"; + public static AnnotationConfigApplicationContext ctx = null; + private static String testXML; + + @Autowired + YAMLfromOXM yamlFromOxm; + + @Autowired + HTMLfromOXM htmlFromOxm; + + @Autowired + SchemaVersions schemaVersions; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + XSDElementTest x = new XSDElementTest(); + x.setUp(); + testXML = x.getTestXML(); + logger.debug(testXML); + BufferedWriter bw = new BufferedWriter(new FileWriter(OXMFILENAME)); + bw.write(testXML); + bw.close(); + BufferedWriter bw1 = new BufferedWriter(new FileWriter(EDGEFILENAME)); + bw1.write(YAMLfromOXMTest.EdgeDefs()); + bw1.close(); + + } + + @Before + public void setUp() throws Exception { + //PowerMockito.mockStatic(GenerateXsd.class); + XSDElementTest x = new XSDElementTest(); + x.setUp(); + testXML = x.getTestXML(); +// logger.info(testXML); + } + + @Test + public void test_generateSwaggerFromOxmFile( ) { + + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + + yamlFromOxm.setXmlVersion(testXML, v); + fileContent = yamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat(fileContent, is(new YAMLfromOXMTest().YAMLresult())); + } + + @Test + public void test_generateXSDFromOxmFile( ) { + + SchemaVersion v = schemaVersions.getAppRootVersion(); + String fileContent = null; + try { + htmlFromOxm.setXmlVersion(testXML, v); + fileContent = htmlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } +// logger.debug(fileContent); + assertThat(fileContent, is(new HTMLfromOXMTest().HTMLresult())); + } + + @Test + public void testGetAPIVersion() { + GenerateXsd.apiVersion = schemaVersions.getAppRootVersion().toString(); + assertThat(GenerateXsd.getAPIVersion(),is("v11")); + } + + @Test + public void testGetYamlDir() { + assertThat(GenerateXsd.getYamlDir(),is("aai-schema/src/main/resources/onap/aai_swagger_yaml")); + } + + @Test + public void testGetResponsesUrl() { + assertNull(GenerateXsd.getResponsesUrl()); + } +} + diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSetTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSetTest.java new file mode 100644 index 0000000..5261a56 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSetTest.java @@ -0,0 +1,83 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.util.Arrays; +import java.util.Collection; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +@RunWith(Parameterized.class) +public class DeleteFootnoteSetTest { + String targetNode; + String flavor; + String result; + DeleteFootnoteSet footnotes = null; + + @Parameters + public static Collection testConditions() { + String inputs [][] = { + {"vserver","(1)", "\n -(1) IF this VSERVER node is deleted, this FROM node is DELETED also\n"}, + {"ctag-pool","(2)", "\n -(2) IF this CTAG-POOL node is deleted, this TO node is DELETED also\n"}, + {"pserver","(3)", "\n -(3) IF this FROM node is deleted, this PSERVER is DELETED also\n"}, + {"oam-network","(4)", "\n -(4) IF this TO node is deleted, this OAM-NETWORK is DELETED also\n"}, + {"dvs-switch","(1)", "\n -(1) IF this DVS-SWITCH node is deleted, this FROM node is DELETED also\n"}, + {"availability-zone","(3)", "\n -(3) IF this FROM node is deleted, this AVAILABILITY-ZONE is DELETED also\n"} + }; + return (Arrays.asList(inputs)); + } + + public DeleteFootnoteSetTest(String targetNode, String flavor, String result) { + super(); + this.targetNode = targetNode; + this.flavor = flavor; + this.result=result; + } + + @Before + public void setUp() throws Exception { + footnotes = new DeleteFootnoteSet(this.targetNode); + } + + @Test + public void testDeleteFootnoteSet() { + assertThat(footnotes.targetNode, is(this.targetNode)); + } + + @Test + public void testAdd() { + footnotes.add(this.flavor); + assertThat(footnotes.footnotes.size(), is(1)); + } + + @Test + public void testToString() { + footnotes.add(this.flavor); + assertThat(footnotes.toString(), is(this.result)); + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteOperationTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteOperationTest.java new file mode 100644 index 0000000..9b0bae8 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/DeleteOperationTest.java @@ -0,0 +1,81 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.util.Arrays; +import java.util.Collection; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(Parameterized.class) +public class DeleteOperationTest { + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + private String result; + + @Parameters + public static Collection testConditions() { + String inputs [][] = { + {"NetworkGenericVnfsGenericVnf","generic-vnf","Network","/network/generic-vnfs/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__\n"," delete:\n tags:\n - Network\n summary: delete an existing generic-vnf\n description: delete an existing generic-vnf\n operationId: deleteNetworkGenericVnfsGenericVnf\n consumes:\n - application/json\n - application/xml\n produces:\n - application/json\n - application/xml\n responses:\n \"default\":\n null parameters:\n - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__\n - name: resource-version\n in: query\n description: resource-version for concurrency\n required: true\n type: string\n"}, +// if ( StringUtils.isEmpty(tag) ) + {"GenericVnf","generic-vnf","","/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__\n",""}, +// Test: if ( !path.endsWith("/relationship") && !path.endsWith("}") ) + {"CloudInfrastructurePserversPserverPInterfaces","p-interfaces","CloudInfrastructure","/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces"," - name: hostname\n in: path\n description: Value from executing hostname on the compute node.\n required: true\n type: string\n example: __HOSTNAME__",""}, +// {"","ctag-pool","","","",""}, +// {"","pserver","","","",""}, +// {"","oam-network","","","",""}, +// {"","dvs-switch","","","",""}, +// {"","availability-zone","","","",""} + }; + return Arrays.asList(inputs); + } + + public DeleteOperationTest(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, String result) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams=pathParams; + this.result = result; + } + @BeforeClass + public static void setUpBeforeClass() throws Exception { + + } + + @Test + public void testToString() { + DeleteOperation delete = new DeleteOperation(useOpId, xmlRootElementName, tag, path, pathParams); + String modResult = delete.toString(); + assertThat(modResult, is(this.result)); + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/EdgeDescriptionTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/EdgeDescriptionTest.java new file mode 100644 index 0000000..ceddafe --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/EdgeDescriptionTest.java @@ -0,0 +1,348 @@ +/** + * ============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.schemagen.genxsd; + +import com.google.common.collect.Multimap; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.edges.EdgeRule; +import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; +import org.onap.aai.schemagen.testutils.TestUtilConfigTranslatorforEdges; +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +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 java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.util.*; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = {SchemaVersions.class, SchemaLocationsBean.class, TestUtilConfigTranslatorforEdges.class, EdgeIngestor.class}) +@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/schemaIngest/schemaIngestTest.properties"}) + + +public class EdgeDescriptionTest { + private static final String EDGEFILENAME = "src/test/resources/dbedgerules/EdgeDescriptionRules_test.json"; + @Autowired + ConfigTranslator ct; + @Autowired + EdgeIngestor edgeIngestor; + String nodeName = "availability-zone"; + String toNode = "complex"; + SchemaVersion v10 = new SchemaVersion("v10"); + @BeforeClass + public static void setUpBeforeClass() throws Exception { + String json = "{" + + " \"rules\": [" + + " {" + + " \"from\": \"availability-zone\"," + + " \"to\": \"complex\"," + + " \"label\": \"org.onap.relationships.inventory.LocatedIn\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2ONE\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"this description\"" + + " }," + + " {" + + " \"from\": \"availability-zone\"," + + " \"to\": \"service-capability\"," + + " \"label\": \"org.onap.relationships.inventory.AppliesTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"availability-zone\"," + + " \"to\": \"cloud-region\"," + + " \"label\": \"org.onap.relationships.inventory.BelongsTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2ONE\"," + + " \"contains-other-v\": \"!${direction}\"," + + " \"delete-other-v\": \"!${direction}\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"NONE\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"ctag-pool\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.AppliesTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"${direction}\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"dvs-switch\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.AppliesTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"generic-vnf\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.Uses\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"${direction}\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"pserver\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.MemberOf\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2ONE\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"${direction}\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"vce\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.Uses\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " ]}"; + BufferedWriter bw = new BufferedWriter(new FileWriter(EDGEFILENAME)); + bw.write(json); + bw.close(); + } + @AfterClass + public static void tearDownAfterClass() throws Exception { + File edges = new File(EDGEFILENAME); + edges.delete(); + } + @Before + public void setUp() throws Exception { + + } + @Test + public void test() { + + Map> edges = ct.getEdgeFiles(); + assertTrue(edges.containsKey(v10)); + assertTrue(1 == edges.get(v10).size()); + assertTrue("src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json".equals(edges.get(v10).get(0))); + } + @Test + public void testGetDeleteOtherV() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"NONE"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getDeleteOtherV(), is(target)); } ); + } + } + + @Test + public void testGetPreventDelete() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"IN"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getPreventDelete(), is(target)); } ); + } + } + + @Test + public void testGetAlsoDeleteFootnote() throws EdgeRuleNotFoundException { +// String toNode="cloud-region"; +// String target = "availability-zone"+"|"+toNode+"-"+"(4)"; + List notedTypes = Arrays.asList("cloud-region", "ctag-pool"); + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals("availability-zone") && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); String target = ed.getRuleKey()+"-"+(notedTypes.contains(ed.getTo()) ? "(4)" : ""); assertThat(ed.getRuleKey()+"-"+ed.getAlsoDeleteFootnote(ed.getFrom()), is(target)); } ); + } +/* + for (EdgeDescription ed : edges) { + String modResult = ed.getRuleKey() + "-" + ed.getAlsoDeleteFootnote(ed.getFrom()); + assertThat(modResult, is(target)); + ed.setDeleteOtherV("IN"); + target = "availability-zone"+"|"+"complex"+"-"+"(4)"; + modResult = ed.getRuleKey() + "-" + ed.getAlsoDeleteFootnote(ed.getFrom()); + assertThat(modResult, is(target)); + target = "availability-zone"+"|"+"complex"+"-"+"(1)"; + modResult = ed.getRuleKey() + "-" + ed.getAlsoDeleteFootnote(ed.getTo()); + assertThat(modResult, is(target)); + ed.setDeleteOtherV("OUT"); + target = "availability-zone"+"|"+"complex"+"-"+"(2)"; + modResult = ed.getRuleKey() + "-" + ed.getAlsoDeleteFootnote(ed.getFrom()); + assertThat(modResult, is(target)); + target = "availability-zone"+"|"+"complex"+"-"+"(3)"; + modResult = ed.getRuleKey() + "-" + ed.getAlsoDeleteFootnote(ed.getTo()); + assertThat(modResult, is(target)); + } +*/ + } + + @Test + public void testGetTo() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+toNode; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getTo(), is(target)); } ); + } + } + + @Test + public void testGetFrom() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"availability-zone"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getFrom(), is(target)); } ); + } + } + + @Test + public void testGetRuleKey() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey(), is(target)); } ); + } + } + + @Test + public void testGetMultiplicity() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"MANY2ONE"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getMultiplicity(), is(target)); } ); + } + } + + @Test + public void testGetDirection() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"OUT"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getDirection(), is(target)); } ); + } + } + + @Test + public void testGetDescription() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"this description"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getDescription(), is(target)); } ); + } + } + + @Test + public void testGetRelationshipDescription() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"this description"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getDescription(), is(target)); } ); + } + } + + @Test + public void testGetType() throws EdgeRuleNotFoundException { + String toNode = "cloud-region"; + String target = "availability-zone"+"|"+toNode+"-"+"PARENT"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getType(), is(target)); } ); + } + } + + @Test + public void testGetLabel() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"org.onap.relationships.inventory.LocatedIn"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getLabel(), is(target)); } ); + } + } + + @Test + public void testGetShortLabel() throws EdgeRuleNotFoundException { + String target = "availability-zone"+"|"+toNode+"-"+"LocatedIn"; + Multimap results = edgeIngestor.getAllRules(v10); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> (i.getTo().equals(toNode) && (! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); assertThat(ed.getRuleKey()+"-"+ed.getShortLabel(), is(target)); } ); + } + } +} + + diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/GetOperationTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/GetOperationTest.java new file mode 100644 index 0000000..6a82cff --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/GetOperationTest.java @@ -0,0 +1,106 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Vector; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(Parameterized.class) +public class GetOperationTest { + private static final Logger logger = LoggerFactory.getLogger("GetOperationTest.class"); + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + private String result; + + @Parameters + public static Collection testConditions() { + String inputs [][] = { + {"NetworkGenericVnfsGenericVnf","generic-vnf","Network","/network/generic-vnfs/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__"," /network/generic-vnfs/generic-vnf/{vnf-id}:\n get:\n tags:\n - Network\n summary: returns generic-vnf\n description: returns generic-vnf\n operationId: getNetworkGenericVnfsGenericVnf\n produces:\n - application/json\n - application/xml\n responses:\n \"200\":\n description: successful operation\n schema:\n $ref: \"#/getDefinitions/generic-vnf\"\n \"default\":\n null parameters:\n - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__"}, + {"GenericVnf","generic-vnf","","/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__",""}, + {"CloudInfrastructurePserversPserverPInterfaces","p-interfaces","CloudInfrastructure","/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces"," - name: hostname\n in: path\n description: Value from executing hostname on the compute node.\n required: true\n type: string\n example: __HOSTNAME__"," /cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces:\n get:\n tags:\n - CloudInfrastructure\n summary: returns p-interfaces\n description: returns p-interfaces\n operationId: getCloudInfrastructurePserversPserverPInterfaces\n produces:\n - application/json\n - application/xml\n responses:\n \"200\":\n description: successful operation\n schema:\n $ref: \"#/getDefinitions/p-interfaces\"\n \"default\":\n null parameters:\n - name: hostname\n in: path\n description: Value from executing hostname on the compute node.\n required: true\n type: string\n example: __HOSTNAME__ - name: interface-name\n in: query\n description:\n required: false\n type: string - name: prov-status\n in: query\n description:\n required: false\n type: string"}, + // {"","ctag-pool","","","",""}, +// {"","pserver","","","",""}, +// {"","oam-network","","","",""}, +// {"","dvs-switch","","","",""}, +// {"","availability-zone","","","",""} + }; + return Arrays.asList(inputs); + } + + public GetOperationTest(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, String result) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams=pathParams; + this.result = result; + } + @BeforeClass + public static void setUpBeforeClass() throws Exception { + String container = "p-interfaces"; + String queryProps[] = { + " - name: interface-name\n in: query\n description:\n required: false\n type: string", + " - name: prov-status\n in: query\n description:\n required: false\n type: string" + }; + Vector containerProps = new Vector(); + for(String prop : queryProps) { + containerProps.add(prop); + } + GetOperation.addContainerProps(container, containerProps); + } + + @Test + public void testAddContainerProps() { + String container = this.xmlRootElementName; + String prop = " - name: "+container+"\n in: query\n description:\n required: false\n type: string"; + Vector queryProps = new Vector(); + queryProps.add(prop); + for(String p : queryProps) { + logger.debug("qProp="+p); + } + logger.debug("Done="+this.xmlRootElementName); + GetOperation.addContainerProps(container, queryProps); + assertThat(GetOperation.containers.get(container).get(0), is(prop)); + } + + @Test + public void testToString() { + GetOperation get = new GetOperation(useOpId, xmlRootElementName, tag, path, pathParams); + String modResult = get.toString(); + assertThat(modResult, is(this.result)); + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/HTMLfromOXMTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/HTMLfromOXMTest.java new file mode 100644 index 0000000..27b7037 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/HTMLfromOXMTest.java @@ -0,0 +1,380 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.schemagen.SwaggerGenerationConfiguration; +import org.onap.aai.schemagen.testutils.TestUtilConfigTranslatorforBusiness; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.w3c.dom.Element; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { + SchemaVersions.class, + SchemaLocationsBean.class, + TestUtilConfigTranslatorforBusiness.class, + EdgeIngestor.class, + NodeIngestor.class, + SwaggerGenerationConfiguration.class + +}) +@TestPropertySource(properties = { + "schema.uri.base.path = /aai", + "schema.xsd.maxoccurs = 5000" +}) +public class HTMLfromOXMTest { + private static final Logger logger = LoggerFactory.getLogger("HTMLfromOXMTest.class"); + private static final String OXMFILENAME = "src/test/resources/oxm/business_oxm_v11.xml"; + public static AnnotationConfigApplicationContext ctx = null; + private static String testXML; + protected static final String SERVICE_NAME = "JUNIT"; + + + @Autowired + HTMLfromOXM htmlFromOxm; + + @Autowired + SchemaVersions schemaVersions; + + @BeforeClass + public static void setUpContext() throws Exception { + + } + @BeforeClass + public static void setupBundleconfig() throws Exception { + System.setProperty("AJSC_HOME", "."); + System.setProperty("BUNDLECONFIG_DIR", "src/test/resources/bundleconfig-local"); + System.setProperty("aai.service.name", SERVICE_NAME); + } + + @Before + public void setUp() throws Exception { + setUp(0); + } + + public void setUp(int sbopt) throws Exception + { + XSDElementTest x = new XSDElementTest(); + x.setUp(sbopt); + testXML = x.testXML; + logger.debug(testXML); + BufferedWriter bw = new BufferedWriter(new FileWriter(OXMFILENAME)); + bw.write(testXML); + bw.close(); + } + + @Test + public void testGetDocumentHeader() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String header = null; + try { + htmlFromOxm.setXmlVersion(testXML, v); + htmlFromOxm.setSchemaVersions(schemaVersions); + header = htmlFromOxm.getDocumentHeader(); + } catch(Exception e) { + e.printStackTrace(); + } + logger.debug("Header:"); + logger.debug(header); + assertThat(header, is(HTMLheader())); + } + + @Test + public void testProcess() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String fileContent = null; + try { + htmlFromOxm.setXmlVersion(testXML, v); + fileContent = htmlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + logger.debug("FileContent-I:"); + logger.debug(fileContent); + assertThat(fileContent, is(HTMLresult(0))); + } + + @Test + public void testProcessWithCombiningJavaTypes() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String fileContent = null; + try { + setUp(1); + htmlFromOxm.setXmlVersion(testXML, v); + fileContent = htmlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + logger.debug("FileContent-I:"); + logger.debug(fileContent); + assertThat(fileContent, is(HTMLresult(1))); + } + + @Test + public void testHTMLfromOXMFileVersion() throws IOException { + String outfileName = "testXML.xml"; + File XMLfile = new File(outfileName); + XMLfile.createNewFile(); + BufferedWriter bw = null; + Charset charset = Charset.forName("UTF-8"); + Path path = Paths.get(outfileName); + bw = Files.newBufferedWriter(path, charset); + bw.write(testXML); + bw.close(); + SchemaVersion v = schemaVersions.getAppRootVersion(); + String fileContent = null; + try { + htmlFromOxm.setXmlVersion(testXML, v); + fileContent = htmlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + XMLfile.delete(); + logger.debug("FileContent-I:"); + logger.debug(fileContent); + assertThat(fileContent, is(HTMLresult(0))); + } + + @Test + public void testHTMLfromOXMStringVersion() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String fileContent = null; + try { + htmlFromOxm.setXmlVersion(testXML, v); + fileContent = htmlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + logger.debug("FileContent-II:"); + logger.debug(fileContent); + assertThat(fileContent, is(HTMLresult(0))); + } + + @Test + public void testProcessJavaTypeElement() { + String target = "Element=java-type/Customer"; + SchemaVersion v = schemaVersions.getAppRootVersion(); + Element customer = null; + try { + htmlFromOxm.setXmlVersion(testXML, v); + htmlFromOxm.process(); + customer = htmlFromOxm.getJavaTypeElementSwagger("Customer"); + } catch(Exception e) { + e.printStackTrace(); + } + logger.debug("Element:"); + logger.debug("Element="+customer.getNodeName()+"/"+customer.getAttribute("name")); + assertThat("Element="+customer.getNodeName()+"/"+customer.getAttribute("name"), is(target)); } + + public String HTMLresult() { + return HTMLresult(0); + } + + public String HTMLresult(int sbopt) { + StringBuilder sb = new StringBuilder(32368); + sb.append(HTMLheader()); + sb.append(HTMLdefs(sbopt)); + return sb.toString(); + } + + public String HTMLheader() { + StringBuilder sb = new StringBuilder(1500); + sb.append("" + OxmFileProcessor.LINE_SEPARATOR); + sb.append("" + OxmFileProcessor.DOUBLE_LINE_SEPARATOR); + return sb.toString(); + } + + public String HTMLdefs() { + return HTMLdefs(0); + } + public String HTMLdefs(int sbopt) { + StringBuilder sb = new StringBuilder(1500); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Object that group service instances.\",indexedProps=\"service-type\",dependentOn=\"customer\",container=\"service-subscriptions\",crossEntityReference=\"service-instance,service-type\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(isKey=true,description=\"Value defined by orchestration to identify this service.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"This property will be deleted from A&AI in the near future. Only stop gap solution.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Used for optimistic concurrency. Must be empty on create, valid on update and delete.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Collection of objects that group service instances.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + if ( sbopt == 0 ) { + sb.append(" @org.onap.aai.annotations.Metadata(description=\"customer identifiers to provide linkage back to BSS information.\",nameProps=\"subscriber-name\",indexedProps=\"subscriber-name,global-customer-id,subscriber-type\",searchable=\"global-customer-id,subscriber-name\",uniqueProps=\"global-customer-id\",container=\"customers\",namespace=\"business\")" + OxmFileProcessor.LINE_SEPARATOR); + } else { + sb.append(" @org.onap.aai.annotations.Metadata(description=\"customer identifiers to provide linkage back to BSS information.\",nameProps=\"subscriber-name\",indexedProps=\"subscriber-type,subscriber-name,global-customer-id\",searchable=\"global-customer-id,subscriber-name\",uniqueProps=\"global-customer-id\",container=\"customers\",namespace=\"business\")" + OxmFileProcessor.LINE_SEPARATOR); + } + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(isKey=true,description=\"Global customer id used across to uniquely identify customer.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Subscriber name, an alternate way to retrieve a customer.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + if ( sbopt == 0 ) { + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Subscriber type, a way to provide VID with only the INFRA customers.\",defaultValue=\"CUST\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Used for optimistic concurrency. Must be empty on create, valid on update and delete.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + } else { + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Used for optimistic concurrency. Must be empty on create, valid on update and delete.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Subscriber type, a way to provide VID with only the INFRA customers.\",defaultValue=\"CUST\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + + } + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Collection of customer identifiers to provide linkage back to BSS information.\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" @org.onap.aai.annotations.Metadata(description=\"Namespace for business related constructs\")" + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append(" " + OxmFileProcessor.LINE_SEPARATOR); + sb.append("" + OxmFileProcessor.LINE_SEPARATOR); + return sb.toString(); + } +} + diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodeGetOperationTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodeGetOperationTest.java new file mode 100644 index 0000000..648142a --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodeGetOperationTest.java @@ -0,0 +1,108 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Vector; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(Parameterized.class) +public class NodeGetOperationTest { + private static final Logger logger = LoggerFactory.getLogger("NodeGetOperationTest.class"); + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + private String result; + + @Parameters + public static Collection testConditions() { + String inputs [][] = { + {"NetworkGenericVnfsGenericVnf","generic-vnf","Network","/network/generic-vnfs/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__"," /nodes/generic-vnfs/generic-vnf/{vnf-id}:\n get:\n tags:\n - Operations\n summary: returns generic-vnf\n description: returns generic-vnf\n operationId: getNetworkGenericVnfsGenericVnf\n produces:\n - application/json\n - application/xml\n responses:\n \"200\":\n description: successful operation\n schema:\n $ref: \"#/definitions/generic-vnf\"\n \"default\":\n null\n parameters:\n - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__"}, + {"GenericVnf","generic-vnf","","/Network/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__",""}, + {"CloudInfrastructurePserversPserverPInterfaces","p-interfaces","CloudInfrastructure","/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces"," - name: hostname\n in: path\n description: Value from executing hostname on the compute node.\n required: true\n type: string\n example: __HOSTNAME__"," /nodes/p-interfaces?parameter=value[¶meter2=value2]:\n get:\n tags:\n - Operations\n summary: returns p-interfaces\n description: returns p-interfaces\n operationId: getCloudInfrastructurePserversPserverPInterfaces\n produces:\n - application/json\n - application/xml\n responses:\n \"200\":\n description: successful operation\n schema:\n $ref: \"#/definitions/p-interfaces\"\n \"default\":\n null\n parameters:\n - name: hostname\n in: path\n description: Value from executing hostname on the compute node.\n required: true\n type: string\n example: __HOSTNAME__\n - name: interface-name\n in: query\n description:\n required: false\n type: string - name: prov-status\n in: query\n description:\n required: false\n type: string"}, + // {"","ctag-pool","","","",""}, +// {"","pserver","","","",""}, +// {"","oam-network","","","",""}, +// {"","dvs-switch","","","",""}, +// {"","availability-zone","","","",""} + }; + return Arrays.asList(inputs); + } + + public NodeGetOperationTest(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, String result) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams=pathParams; + this.result = result; + } + @BeforeClass + public static void setUpBeforeClass() throws Exception { + String container = "p-interfaces"; + String queryProps[] = { + " - name: interface-name\n in: query\n description:\n required: false\n type: string", + " - name: prov-status\n in: query\n description:\n required: false\n type: string" + }; + Vector containerProps = new Vector(); + for(String prop : queryProps) { + containerProps.add(prop); + } + NodeGetOperation.addContainerProps(container, containerProps); + } + + @Test + public void testAddContainerProps() { + String container = this.xmlRootElementName; + String prop = " - name: "+container+"\n in: query\n description:\n required: false\n type: string"; + Vector queryProps = new Vector(); + queryProps.add(prop); + String props=null; + for(String p : queryProps) { + props += "qProp="+p+"\n"; +// logger.debug("qProp="+p); + } +// logger.debug("Done="+this.xmlRootElementName); + NodeGetOperation.addContainerProps(container, queryProps); + assertThat(props+"Done="+this.xmlRootElementName,NodeGetOperation.containers.get(container).get(0), is(prop)); + } + + @Test + public void testToString() { + NodeGetOperation get = new NodeGetOperation(useOpId, xmlRootElementName, tag, path, pathParams); + String modResult = get.toString(); + assertThat(modResult, is(this.result)); + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java new file mode 100644 index 0000000..e352b08 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java @@ -0,0 +1,629 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.schemagen.SwaggerGenerationConfiguration; +import org.onap.aai.schemagen.testutils.TestUtilConfigTranslatorforEdges; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.w3c.dom.Element; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { + SchemaVersions.class, + SchemaLocationsBean.class, + TestUtilConfigTranslatorforEdges.class, + EdgeIngestor.class, + NodeIngestor.class, + SwaggerGenerationConfiguration.class + +}) +@TestPropertySource(properties = { + "schema.uri.base.path = /aai", + "schema.xsd.maxoccurs = 5000" +}) +public class NodesYAMLfromOXMTest { +//public class NodesYAMLfromOXMTest extends AAISetup { + private static final Logger logger = LoggerFactory.getLogger("NodesYAMLfromOXMTest.class"); + private static final String OXMFILENAME = "src/test/resources/oxm/business_v11.xml"; + private static final String EDGEFILENAME = "src/test/resources/dbedgerules/EdgeDescriptionRules_test.json"; + public static AnnotationConfigApplicationContext ctx = null; + private static String testXML; + + @Autowired + NodesYAMLfromOXM nodesYamlFromOxm; + @Autowired + SchemaVersions schemaVersions; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + + XSDElementTest x = new XSDElementTest(); + x.setUp(); + testXML = x.testXML; + logger.debug(testXML); + BufferedWriter bw = new BufferedWriter(new FileWriter(OXMFILENAME)); + bw.write(testXML); + bw.close(); + BufferedWriter bw1 = new BufferedWriter(new FileWriter(EDGEFILENAME)); + bw1.write(YAMLfromOXMTest.EdgeDefs()); + bw1.close(); + + + } + + @Before + public void setUp() throws Exception { + + NodeGetOperation.checklist.clear(); + XSDElementTest x = new XSDElementTest(); + x.setUp(); + testXML = x.testXML; + + logger.debug(testXML); + } + + @Test + public void testGetDocumentHeader() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String header = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + nodesYamlFromOxm.process(); + header = nodesYamlFromOxm.getDocumentHeader(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("Header:\n"+header,header, is(YAMLheader())); + } + + @Test + public void testProcess() { + + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + fileContent = nodesYamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("FileContent-I:\n"+fileContent,fileContent, is(YAMLresult())); + } + + @Test + public void testNodesYAMLfromOXMFileVersionFile() throws IOException { + String outfileName = "testXML.xml"; + File XMLfile = new File(outfileName); + XMLfile.createNewFile(); + BufferedWriter bw = null; + Charset charset = Charset.forName("UTF-8"); + Path path = Paths.get(outfileName); + bw = Files.newBufferedWriter(path, charset); + bw.write(testXML); + bw.close(); + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + fileContent = nodesYamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + XMLfile.delete(); + assertThat("FileContent:\n"+fileContent,fileContent, is(YAMLresult())); + } + + @Test + public void testNodesYAMLfromOXMStringVersionFile() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + fileContent = nodesYamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("FileContent-II:\n"+fileContent,fileContent, is(YAMLresult())); + } + + @Test + public void testAppendDefinitions() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String definitions = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + nodesYamlFromOxm.process(); + definitions = nodesYamlFromOxm.appendDefinitions(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("Definitions:\n"+definitions,definitions, is(YAMLgetDefs())); + } + + @Test + public void testGetXMLRootElementName() { + String target = "RootElement=customer"; + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + Element customer = null; + String root = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + nodesYamlFromOxm.process(); + customer = nodesYamlFromOxm.getJavaTypeElementSwagger("Customer"); + root = nodesYamlFromOxm.getXMLRootElementName(customer); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("RootElement="+root, is(target)); + } + + @Test + public void testGetXmlRootElementName() { + String target = "RootElement=customer"; + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String root = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + nodesYamlFromOxm.process(); + root = nodesYamlFromOxm.getXmlRootElementName("Customer"); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("RootElement="+root, is(target)); + } + + @Test + public void testGetJavaTypeElementSwagger() { + String target = "Element=java-type/Customer"; + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + Element customer = null; + try { + nodesYamlFromOxm.setXmlVersion(testXML, v); + nodesYamlFromOxm.process(); + customer = nodesYamlFromOxm.getJavaTypeElementSwagger("Customer"); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("Element="+customer.getNodeName()+"/"+customer.getAttribute("name"), is(target)); + } + + public String YAMLresult() { + StringBuilder sb = new StringBuilder(32368); + sb.append(YAMLheader()); + sb.append(YAMLops()); +// sb.append(YAMLdefs()); +// sb.append(YAMLpatchDefs()); + sb.append(YAMLgetDefs()); + return sb.toString(); + } + public String YAMLheader() { + StringBuilder sb = new StringBuilder(1500); + sb.append("swagger: \"2.0\"\n"); + sb.append("info:\n"); + sb.append(" description: |\n"); + sb.append("\n"); + sb.append(" [Differences versus the previous schema version](apidocs/aai_swagger_v11.diff)\n"); + sb.append("\n"); + sb.append(" Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.\n"); + sb.append("\n"); + sb.append(" Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.\n"); + sb.append("\n"); + sb.append(" You may obtain a copy of the License at\n"); + sb.append("\n"); + sb.append(" (https://creativecommons.org/licenses/by/4.0/)\n"); + sb.append("\n"); + sb.append(" 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.\n"); + sb.append("\n"); + sb.append(" This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions.\n"); + sb.append(" version: \"v11\"\n"); + sb.append(" title: Active and Available Inventory REST API\n"); + sb.append(" license:\n"); + sb.append(" name: Apache 2.0\n"); + sb.append(" url: http://www.apache.org/licenses/LICENSE-2.0.html\n"); + sb.append(" contact:\n"); + sb.append(" name:\n"); + sb.append(" url:\n"); + sb.append(" email:\n"); + sb.append("host:\n"); + sb.append("basePath: /aai/v11\n"); + sb.append("schemes:\n"); + sb.append(" - https\n"); + sb.append("paths:\n"); + return sb.toString(); + } + + public String YAMLops() { + StringBuilder sb = new StringBuilder(16384); + sb.append(" /nodes/customers/customer/{global-customer-id}:\n"); + sb.append(" get:\n"); + sb.append(" tags:\n"); + sb.append(" - Operations\n"); + sb.append(" summary: returns customer\n"); + sb.append(" description: returns customer\n"); + sb.append(" operationId: getBusinessCustomersCustomer\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"200\":\n"); + sb.append(" description: successful operation\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" \"default\":\n"); + sb.append(" null\n parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" /nodes/customers?parameter=value[¶meter2=value2]:\n"); + sb.append(" get:\n"); + sb.append(" tags:\n"); + sb.append(" - Operations\n"); + sb.append(" summary: returns customers\n"); + sb.append(" description: returns customers\n"); + sb.append(" operationId: getBusinessCustomers\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"200\":\n"); + sb.append(" description: successful operation\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/definitions/customers\"\n"); + sb.append(" \"default\":\n"); + sb.append(" null\n parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + sb.append(" - name: subscriber-name\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + sb.append(" - name: subscriber-type\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + sb.append(" /nodes/service-subscriptions?parameter=value[¶meter2=value2]:\n"); + sb.append(" get:\n"); + sb.append(" tags:\n"); + sb.append(" - Operations\n"); + sb.append(" summary: returns service-subscriptions\n"); + sb.append(" description: returns service-subscriptions\n"); + sb.append(" operationId: getBusinessCustomersCustomerServiceSubscriptions\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"200\":\n"); + sb.append(" description: successful operation\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/definitions/service-subscriptions\"\n"); + sb.append(" \"default\":\n"); + sb.append(" null\n parameters:\n"); + sb.append(" - name: service-type\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + return sb.toString(); + } + public String YAMLdefs() { + StringBuilder sb = new StringBuilder(8092); + sb.append("definitions:\n"); + sb.append(" business:\n"); + sb.append(" description: |\n"); + sb.append(" Namespace for business related constructs\n"); + sb.append(" properties:\n"); + sb.append(" customers:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" customer:\n"); + sb.append(" description: |\n"); + sb.append(" customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - FROM service-subscription (CHILD of customer, service-subscription BelongsTo customer, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this CUSTOMER node is deleted, this FROM node is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - global-customer-id\n"); + sb.append(" - subscriber-name\n"); + sb.append(" - subscriber-type\n"); + sb.append(" properties:\n"); + sb.append(" global-customer-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" subscriber-name:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber name, an alternate way to retrieve a customer.\n"); + sb.append(" subscriber-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber type, a way to provide VID with only the INFRA customers.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/service-subscription\"\n"); + sb.append(" customers:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" properties:\n"); + sb.append(" customer:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" inventory:\n"); + sb.append(" properties:\n"); + sb.append(" business:\n"); + sb.append(" type: object\n"); + sb.append(" $ref: \"#/definitions/business\"\n"); + sb.append(" nodes:\n"); + sb.append(" properties:\n"); + sb.append(" inventory-item-data:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/inventory-item-data\"\n"); + sb.append(" service-subscription:\n"); + sb.append(" description: |\n"); + sb.append(" Object that group service instances.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - TO customer (PARENT of service-subscription, service-subscription BelongsTo customer, MANY2ONE)(4)\n"); + sb.append(" - TO tenant( service-subscription Uses tenant, MANY2MANY)\n"); + sb.append(" - FROM service-instance (CHILD of service-subscription, service-instance BelongsTo service-subscription, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this SERVICE-SUBSCRIPTION node is deleted, this FROM node is DELETED also\n"); + sb.append(" -(4) IF this TO node is deleted, this SERVICE-SUBSCRIPTION is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - service-type\n"); + sb.append(" properties:\n"); + sb.append(" service-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" temp-ub-sub-account-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: This property will be deleted from A&AI in the near future. Only stop gap solution.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of objects that group service instances.\n"); + sb.append(" properties:\n"); + sb.append(" service-subscription:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/definitions/service-subscription\"\n"); + return sb.toString(); + } + public String YAMLpatchDefs() { + StringBuilder sb = new StringBuilder(8092); + sb.append("patchDefinitions:\n"); + sb.append(" business:\n"); + sb.append(" description: |\n"); + sb.append(" Namespace for business related constructs\n"); + sb.append(" properties:\n"); + sb.append(" customers:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/patchDefinitions/customer\"\n"); + sb.append(" customer:\n"); + sb.append(" description: |\n"); + sb.append(" customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - FROM service-subscription (CHILD of customer, service-subscription BelongsTo customer, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this CUSTOMER node is deleted, this FROM node is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - global-customer-id\n"); + sb.append(" - subscriber-name\n"); + sb.append(" - subscriber-type\n"); + sb.append(" properties:\n"); + sb.append(" global-customer-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" subscriber-name:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber name, an alternate way to retrieve a customer.\n"); + sb.append(" subscriber-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber type, a way to provide VID with only the INFRA customers.\n"); + sb.append(" customers:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" properties:\n"); + sb.append(" customer:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/patchDefinitions/customer\"\n"); + sb.append(" inventory:\n"); + sb.append(" properties:\n"); + sb.append(" business:\n"); + sb.append(" type: object\n"); + sb.append(" $ref: \"#/patchDefinitions/business\"\n"); + sb.append(" nodes:\n"); + sb.append(" properties:\n"); + sb.append(" inventory-item-data:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/patchDefinitions/inventory-item-data\"\n"); + sb.append(" service-subscription:\n"); + sb.append(" description: |\n"); + sb.append(" Object that group service instances.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - TO customer (CHILD of customer, service-subscription BelongsTo customer, MANY2ONE)(4)\n"); + sb.append(" - TO tenant( service-subscription Uses tenant, MANY2MANY)\n"); + sb.append(" - FROM service-instance (CHILD of service-subscription, service-instance BelongsTo service-subscription, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this SERVICE-SUBSCRIPTION node is deleted, this FROM node is DELETED also\n"); + sb.append(" -(4) IF this TO node is deleted, this SERVICE-SUBSCRIPTION is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - service-type\n"); + sb.append(" properties:\n"); + sb.append(" service-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" temp-ub-sub-account-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: This property will be deleted from A&AI in the near future. Only stop gap solution.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of objects that group service instances.\n"); + sb.append(" properties:\n"); + sb.append(" service-subscription:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/patchDefinitions/service-subscription\"\n"); + return sb.toString(); + } + public String YAMLgetDefs() { + StringBuilder sb = new StringBuilder(8092); + sb.append("definitions:\n"); + sb.append(" business:\n"); + sb.append(" description: |\n"); + sb.append(" Namespace for business related constructs\n"); + sb.append(" properties:\n"); + sb.append(" customers:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" customer:\n"); + sb.append(" description: |\n"); + sb.append(" customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - FROM service-subscription (CHILD of customer, service-subscription BelongsTo customer, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this CUSTOMER node is deleted, this FROM node is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - global-customer-id\n"); + sb.append(" - subscriber-name\n"); + sb.append(" - subscriber-type\n"); + sb.append(" properties:\n"); + sb.append(" global-customer-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" subscriber-name:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber name, an alternate way to retrieve a customer.\n"); + sb.append(" subscriber-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber type, a way to provide VID with only the INFRA customers.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/service-subscription\"\n"); + sb.append(" customers:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" properties:\n"); + sb.append(" customer:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" inventory:\n"); + sb.append(" properties:\n"); + sb.append(" business:\n"); + sb.append(" type: object\n"); + sb.append(" $ref: \"#/definitions/business\"\n"); + sb.append(" nodes:\n"); + sb.append(" properties:\n"); + sb.append(" inventory-item-data:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/inventory-item-data\"\n"); + sb.append(" service-subscription:\n"); + sb.append(" description: |\n"); + sb.append(" Object that group service instances.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - TO customer (PARENT of service-subscription, service-subscription BelongsTo customer, MANY2ONE)(4)\n"); + sb.append(" - TO tenant( service-subscription Uses tenant, MANY2MANY)\n"); + sb.append(" - FROM service-instance (CHILD of service-subscription, service-instance BelongsTo service-subscription, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this SERVICE-SUBSCRIPTION node is deleted, this FROM node is DELETED also\n"); + sb.append(" -(4) IF this TO node is deleted, this SERVICE-SUBSCRIPTION is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - service-type\n"); + sb.append(" properties:\n"); + sb.append(" service-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" temp-ub-sub-account-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: This property will be deleted from A&AI in the near future. Only stop gap solution.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of objects that group service instances.\n"); + sb.append(" properties:\n"); + sb.append(" service-subscription:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/definitions/service-subscription\"\n"); + return sb.toString(); + } +} + diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PatchOperationTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PatchOperationTest.java new file mode 100644 index 0000000..65cca9c --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PatchOperationTest.java @@ -0,0 +1,81 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.util.Arrays; +import java.util.Collection; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(Parameterized.class) +public class PatchOperationTest { + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + private String result; + + @Parameters + public static Collection testConditions() { + String inputs [][] = { + {"NetworkGenericVnfsGenericVnf","generic-vnf","Network","/network/generic-vnfs/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__"," patch:\n tags:\n - Network\n summary: update an existing generic-vnf\n description: |\n Update an existing generic-vnf\n #\n Note: Endpoints that are not devoted to object relationships support both PUT and PATCH operations.\n The PUT operation will entirely replace an existing object.\n The PATCH operation sends a \"description of changes\" for an existing object. The entire set of changes must be applied. An error result means no change occurs.\n #\n Other differences between PUT and PATCH are:\n #\n - For PATCH, you can send any of the values shown in sample REQUEST body. There are no required values.\n - For PATCH, resource-id which is a required REQUEST body element for PUT, must not be sent.\n - PATCH cannot be used to update relationship elements; there are dedicated PUT operations for this.\n operationId: UpdateNetworkGenericVnfsGenericVnf\n consumes:\n - application/json\n produces:\n - application/json\n responses:\n \"default\":\n null parameters:\n - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__ - name: body\n in: body\n description: generic-vnf object that needs to be updated.\n required: true\n schema:\n $ref: \"#/patchDefinitions/generic-vnf\"\n"}, +// if ( StringUtils.isEmpty(tag) ) + {"GenericVnf","generic-vnf","","/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__",""}, +// Test: if ( !path.endsWith("/relationship") && !path.endsWith("}") ) + {"CloudInfrastructurePserversPserverPInterfaces","p-interfaces","CloudInfrastructure","/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces"," - name: hostname\n in: path\n description: Value from executing hostname on the compute node.\n required: true\n type: string\n example: __HOSTNAME__",""}, + // {"","ctag-pool","","","",""}, +// {"","pserver","","","",""}, +// {"","oam-network","","","",""}, +// {"","dvs-switch","","","",""}, +// {"","availability-zone","","","",""} + }; + return Arrays.asList(inputs); + } + + public PatchOperationTest(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, String result) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams=pathParams; + this.result = result; + } + @BeforeClass + public static void setUpBeforeClass() throws Exception { + + } + + @Test + public void testToString() { + PatchOperation patch = new PatchOperation(useOpId, xmlRootElementName, tag, path, pathParams); + String modResult = patch.toString(); + assertThat(modResult, is(this.result)); + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutOperationTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutOperationTest.java new file mode 100644 index 0000000..1b073d9 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutOperationTest.java @@ -0,0 +1,83 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.onap.aai.setup.SchemaVersion; + +import java.util.Arrays; +import java.util.Collection; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(Parameterized.class) +public class PutOperationTest { + private String useOpId; + private String xmlRootElementName; + private String tag; + private String path; + private String pathParams; + private String result; + private static SchemaVersion v = new SchemaVersion("v14"); + + @Parameters + public static Collection testConditions() { + String inputs [][] = { + {"NetworkGenericVnfsGenericVnf","generic-vnf","Network","/network/generic-vnfs/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__"," put:\n tags:\n - Network\n summary: create or update an existing generic-vnf\n description: |\n Create or update an existing generic-vnf.\n #\n Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement. An example can be found in the [PATCH section] below\n operationId: createOrUpdateNetworkGenericVnfsGenericVnf\n consumes:\n - application/json\n - application/xml\n produces:\n - application/json\n - application/xml\n responses:\n \"default\":\n null parameters:\n - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__ - name: body\n in: body\n description: generic-vnf object that needs to be created or updated. [Valid relationship examples shown here](apidocs/relations/"+v.toString()+"/NetworkGenericVnfsGenericVnf.json)\n required: true\n schema:\n $ref: \"#/definitions/generic-vnf\"\n"}, +// if ( StringUtils.isEmpty(tag) ) + {"GenericVnf","generic-vnf","","/generic-vnf/{vnf-id}"," - name: vnf-id\n in: path\n description: Unique id of VNF. This is unique across the graph.\n required: true\n type: string\n example: __VNF-ID__",""}, +// Test: if ( !path.endsWith("/relationship") && !path.endsWith("}") ) + {"CloudInfrastructurePserversPserverPInterfaces","p-interfaces","CloudInfrastructure","/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces"," - name: hostname\n in: path\n description: Value from executing hostname on the compute node.\n required: true\n type: string\n example: __HOSTNAME__",""}, + // {"","ctag-pool","","","",""}, +// {"","pserver","","","",""}, +// {"","oam-network","","","",""}, +// {"","dvs-switch","","","",""}, +// {"","availability-zone","","","",""} + }; + return Arrays.asList(inputs); + } + + public PutOperationTest(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, String result) { + super(); + this.useOpId = useOpId; + this.xmlRootElementName = xmlRootElementName; + this.tag = tag; + this.path = path; + this.pathParams=pathParams; + this.result = result; + } + @BeforeClass + public static void setUpBeforeClass() throws Exception { + + } + + @Test + public void testToString() { + PutOperation put = new PutOperation(useOpId, xmlRootElementName, tag, path, pathParams, v); + String modResult = put.toString(); + assertThat(modResult, is(this.result)); + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutRelationPathSetTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutRelationPathSetTest.java new file mode 100644 index 0000000..4799684 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/PutRelationPathSetTest.java @@ -0,0 +1,257 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.schemagen.GenerateXsd; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +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 java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertTrue; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { + SchemaVersions.class, + EdgeIngestor.class +}) +@TestPropertySource(properties = { + "schema.uri.base.path = /aai" +}) +@Ignore("This test needs to get major rework done as it is written very poorly") +public class PutRelationPathSetTest { + private static final String EDGEFILENAME = "src/test/resources/dbedgerules/EdgeDescriptionRules_test.json"; + + private static String json; + private SchemaVersion v ; + private File relationsFile ; + private String target = "/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name}/relationship-list/relationship"; + private String opId = "createOrUpdateCloudInfrastructureCloudRegionsCloudRegionAvailabilityZonesAvailabilityZoneRelationshipListRelationship"; + private String path = "/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name}/relationship-list/relationship"; + PutRelationPathSet prp = null; + @Autowired + SchemaVersions schemaVersions; + + @Autowired + EdgeIngestor edgeIngestor; + + + @Before + public void setUpBeforeClass() throws Exception { + v = schemaVersions.getDefaultVersion(); + + relationsFile = new File(GenerateXsd.getYamlDir() + "/relations/" + v.toString()+"/createOrUpdateCloudInfrastructureCloudRegionsCloudRegionAvailabilityZonesAvailabilityZone.json"); + json = "{" + + " \"rules\": [" + + " {" + + " \"from\": \"availability-zone\"," + + " \"to\": \"complex\"," + + " \"label\": \"org.onap.relationships.inventory.LocatedIn\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2ONE\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"this description\"" + + " }," + + " {" + + " \"from\": \"availability-zone\"," + + " \"to\": \"service-capability\"," + + " \"label\": \"org.onap.relationships.inventory.AppliesTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"availability-zone\"," + + " \"to\": \"cloud-region\"," + + " \"label\": \"org.onap.relationships.inventory.BelongsTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2ONE\"," + + " \"contains-other-v\": \"!${direction}\"," + + " \"delete-other-v\": \"!${direction}\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"NONE\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"ctag-pool\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.AppliesTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"dvs-switch\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.AppliesTo\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"generic-vnf\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.Uses\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"${direction}\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"vf-module\"," + + " \"to\": \"vnfc\"," + + " \"label\": \"org.onap.relationships.inventory.Uses\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"ONE2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"${direction}\"," + + " \"prevent-delete\": \"${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"pserver\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.MemberOf\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2ONE\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"${direction}\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " {" + + " \"from\": \"vce\"," + + " \"to\": \"availability-zone\"," + + " \"label\": \"org.onap.relationships.inventory.Uses\"," + + " \"direction\": \"OUT\"," + + " \"multiplicity\": \"MANY2MANY\"," + + " \"contains-other-v\": \"NONE\"," + + " \"delete-other-v\": \"NONE\"," + + " \"SVC-INFRA\": \"NONE\"," + + " \"prevent-delete\": \"!${direction}\"," + + " \"default\": \"true\"," + + " \"description\":\"\"" + + " }," + + " ]}"; + + BufferedWriter bw = new BufferedWriter(new FileWriter(EDGEFILENAME)); + bw.write(json); + bw.close(); + + } + + @Before + public void setUp() throws Exception { + + DeleteOperation.deletePaths.put("/cloud-infrastructure/pservers/pserver/{hostname}","pserver"); + DeleteOperation.deletePaths.put("/network/vces/vce/{vnf-id}","vce"); + DeleteOperation.deletePaths.put("/cloud-infrastructure/complexes/complex/{physical-location-id}","complex"); + DeleteOperation.deletePaths.put("/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}","service-capability"); + DeleteOperation.deletePaths.put("/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}","cloud-region"); + DeleteOperation.deletePaths.put("/network/generic-vnfs/generic-vnf/{vnf-id}","generic-vnf"); + DeleteOperation.deletePaths.put("/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name}","dvs-switch"); + DeleteOperation.deletePaths.put("/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}","ctag-pool"); + + DeleteOperation.deletePaths.put(path.replace("/relationship-list/relationship", ""),"availability-zone"); + PutRelationPathSet.add(opId, path); + } + @AfterClass + public static void tearDownAfterClass() throws Exception { + File edges = new File(EDGEFILENAME); + edges.delete(); + } + @Test + public void testAdd() { + PutRelationPathSet.add(opId, path); + assertThat(PutRelationPathSet.putRelationPaths.size(), is(1)); + assertThat(PutRelationPathSet.putRelationPaths.get(opId), is(target)); + } + + @Test + public void testPutRelationPathSet() { + + this.prp = new PutRelationPathSet(v); + assertThat(PutRelationPathSet.putRelationPaths.size(), is(1)); + prp.generateRelations(edgeIngestor); + assertTrue(this.relationsFile.exists()); + this.relationsFile.delete(); + } + + @Test + public void testPutRelationPathSetStringString() { + this.prp = new PutRelationPathSet(opId, path, v); + assertThat(PutRelationPathSet.putRelationPaths.size(), is(1)); + } + + @Test + public void testGenerateRelations() { + PutRelationPathSet prp = new PutRelationPathSet(opId, "availability-zone", v); + prp.generateRelations(edgeIngestor); + assertThat(PutRelationPathSet.putRelationPaths.size(), is(1)); + assertThat(PutRelationPathSet.putRelationPaths.get(opId), is(target)); + assertTrue(this.relationsFile.exists()); +// this.relationsFile.delete(); + } + +} + + diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java new file mode 100644 index 0000000..a9c7880 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDElementTest.java @@ -0,0 +1,623 @@ +/** + * ============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.schemagen.genxsd; + +import org.apache.commons.lang.StringUtils; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +import javax.xml.XMLConstants; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.IOException; +import java.io.StringReader; +import java.util.*; + +import static org.hamcrest.CoreMatchers.*; +import static org.hamcrest.collection.IsIn.in; +import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder; +import static org.hamcrest.core.Every.everyItem; +import static org.junit.Assert.assertThat; + +public class XSDElementTest { + private static final Logger logger = LoggerFactory.getLogger("XSDElementTest.class"); + private static final int maxSizeForXml = 20000; + protected String testXML; + protected Document doc = null; + protected NodeList javaTypeNodes=null; + + public String getTestXML() { + return testXML; + } + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + setUp(0); + } + + public void setUp( int sbopt ) throws Exception { + StringBuilder sb = new StringBuilder(maxSizeForXml); + addNamespace(sb); + addBusiness(sb); + addCustomers(sb); + if ( sbopt == 0 ) { + addCustomer(sb); + } else { + addCustomerNoSubscriberType(sb); + addCustomerSubscriberType(sb); + } + addServiceSubscriptions(sb); + addServiceSubscription(sb); + addEndOfXML(sb); + testXML = sb.toString(); + init(); +} + + private void addNamespace(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addBusiness(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addCustomers(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addCustomer(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); +// sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addCustomerNoSubscriberType(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addCustomerSubscriberType(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addServiceSubscriptions(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + private void addServiceSubscription(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); +// sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addRelationshipList(StringBuilder sb ) { + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("/n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addRelationship(StringBuilder sb ) { + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append(""); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addRelatedToProperty(StringBuilder sb) { + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + private void addRelationshipData(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + } + + + private void addEndOfXML(StringBuilder sb){ + sb.append("\n"); + sb.append("\n"); + } + + public void init() throws ParserConfigurationException, SAXException, IOException { + DocumentBuilder dBuilder = null; + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + dbFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + dBuilder = dbFactory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + throw e; + } + try { + InputSource isInput = new InputSource(new StringReader(testXML)); + doc = dBuilder.parse(isInput); + } catch (SAXException e) { + throw e; + } catch (IOException e) { + throw e; + } + + NodeList bindingsNodes = doc.getElementsByTagName("xml-bindings"); + Element bindingElement; + NodeList javaTypesNodes; + Element javaTypesElement; + + if ( bindingsNodes == null || bindingsNodes.getLength() == 0 ) { + throw new SAXException("OXM file error: missing in XML"); + } + + bindingElement = (Element) bindingsNodes.item(0); + javaTypesNodes = bindingElement.getElementsByTagName("java-types"); + if ( javaTypesNodes.getLength() < 1 ) { + throw new SAXException("OXM file error: missing in XML"); + } + javaTypesElement = (Element) javaTypesNodes.item(0); + + javaTypeNodes = javaTypesElement.getElementsByTagName("java-type"); + if ( javaTypeNodes.getLength() < 1 ) { + throw new SAXException("OXM file error: missing in XML"); + } + logger.debug(testXML); + } + @Test + public void testXSDElement() { + // repeat of testGetIndexedProps() which uses the constructor + ArrayList target = new ArrayList(); + target.add("subscriber-name"); + target.add("global-customer-id"); + target.add("subscriber-type"); + target.add("service-type"); + + Vector indexedProps = new Vector(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + indexedProps.addAll(javaTypeElement.getIndexedProps()); + } + assertThat(new ArrayList<>(indexedProps),both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + } + + @Test + public void testName() { + ArrayList target = new ArrayList(); + target.add("ServiceSubscriptions"); + target.add("ServiceSubscription"); + target.add("Inventory"); + target.add("Business"); + target.add("Customers"); + target.add("Customer"); + ArrayList names = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + names.add(javaTypeElement.name()); + } + logger.debug(String.join("|", names)); + assertThat(names,both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + } + + @Test + public void testGetAddTypes() { + HashMap> map = new HashMap>(); + HashMap> target = new HashMap>(); + target.put("Customer", new ArrayList<>(Arrays.asList("ServiceSubscriptions", "RelationshipList"))); + target.put("Customer", new ArrayList<>(Arrays.asList("ServiceSubscriptions"))); + target.put("Business", new ArrayList<>(Arrays.asList("Customers"))); + target.put("Inventory", new ArrayList<>(Arrays.asList("Business"))); + target.put("Customers", new ArrayList<>(Arrays.asList("Customer"))); + target.put("ServiceSubscription", new ArrayList<>(Arrays.asList("RelationshipList"))); + target.put("ServiceSubscription", new ArrayList<>(Arrays.asList())); + target.put("ServiceSubscriptions", new ArrayList<>(Arrays.asList("ServiceSubscription"))); + + for ( int i = 0; i < javaTypeNodes.getLength(); ++i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + ArrayList addTypes = new ArrayList(); + NodeList xmlElementNodes = javaTypeElement.getElementsByTagName("xml-element"); + String name=javaTypeElement.name(); + for ( int j = 0; j < xmlElementNodes.getLength(); ++j ) { + XSDElement xmlElement = new XSDElement((Element) xmlElementNodes.item(j)); + addTypes.addAll(xmlElement.getAddTypes("v11")); + map.put(name,addTypes); + } + } + for(String key : map.keySet()) { + assertThat("Expected for key:"+key, map.get(key),equalTo(target.get(key))); + } + } +/* + @Test + public void testGetRequiredElements() { + HashMap> map = new HashMap>(); + ArrayList target = new ArrayList(); + target.add("global-customer-id\n"); + target.add("subscriber-name\n"); + target.add("subscriber-type"); + for ( int i = 0; i < javaTypeNodes.getLength(); ++i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + ArrayList requiredItems = new ArrayList(); + String name=javaTypeElement.name(); + requiredItems.addAll(javaTypeElement.getRequiredElements("v11")); + map.put(name,requiredItems); + } + for(String key : map.keySet()) { + assertThat(map.get(key),equalTo(target)); + } + } +*/ + @Test + public void testGetPathDescriptionProperty() { + ArrayList target = new ArrayList(); + target.add("Namespace for business related constructs"); + target.add("Collection of customer identifiers to provide linkage back to BSS information."); + target.add("customer identifiers to provide linkage back to BSS information."); + target.add("Collection of objects that group service instances."); + target.add("Object that group service instances."); + List descs = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + if(javaTypeElement.getPathDescriptionProperty() != null) + descs.add(javaTypeElement.getPathDescriptionProperty()); + } + logger.debug(String.join("|", descs)); + assertThat(new ArrayList<>(descs),both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + } + + @Test + public void testGetIndexedProps() { + ArrayList target = new ArrayList(); + target.add("subscriber-name"); + target.add("global-customer-id"); + target.add("subscriber-type"); + target.add("service-type"); + + Vector indexedProps = new Vector(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + indexedProps.addAll(javaTypeElement.getIndexedProps()); + } + assertThat(new ArrayList<>(indexedProps),both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + } + + @Test + public void testGetContainerProperty() { + ArrayList target = new ArrayList(); + target.add("service-subscriptions"); + target.add("customers"); + List containers = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + if(javaTypeElement.getContainerProperty() != null) + containers.add(javaTypeElement.getContainerProperty()); + } + logger.debug(String.join("|", containers)); + assertThat(new ArrayList<>(containers),both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + } + + @Test + public void testGetQueryParamYAML() { + ArrayList target = new ArrayList(); + target.add(" - name: global-customer-id\n in: query\n description:\n required: false\n type: string\n"); + target.add(" - name: subscriber-name\n in: query\n description:\n required: false\n type: string\n"); + target.add(" - name: subscriber-type\n in: query\n description:\n required: false\n type: string\n"); + Vector indexedProps = new Vector(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + if(javaTypeElement.getContainerProperty() != null) { + indexedProps.addAll(javaTypeElement.getIndexedProps()); + String container = javaTypeElement.getContainerProperty(); + Vector containerProps = new Vector(); + NodeList xmlElementNodes = javaTypeElement.getElementsByTagName("xml-element"); + for ( int j = 0; j < xmlElementNodes.getLength(); ++j ) { + XSDElement xmlElement = new XSDElement((Element) xmlElementNodes.item(j)); + if(indexedProps.contains(xmlElement.name())) + containerProps.add(xmlElement.getQueryParamYAML()); + } + GetOperation.addContainerProps(container, containerProps); + } + } +/* + List queryParams = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + if(javaTypeElement.getQueryParamYAML() != null) + queryParams.add(javaTypeElement.getQueryParamYAML()); + } +*/ + assertThat(GetOperation.containers.get("customers"),equalTo( target)); + } + + @Test + public void testGetPathParamYAML() { + ArrayList target = new ArrayList(); + target.add(" - name: Inventory\n in: path\n description: Inventory\n required: true\n example: __INVENTORY__\n"); + target.add(" - name: Business\n in: path\n description: Business\n required: true\n example: __BUSINESS__\n"); + target.add(" - name: Customers\n in: path\n description: Customers\n required: true\n example: __CUSTOMERS__\n"); + target.add(" - name: Customer\n in: path\n description: Customer\n required: true\n example: __CUSTOMER__\n"); + target.add(" - name: ServiceSubscriptions\n in: path\n description: ServiceSubscriptions\n required: true\n example: __SERVICESUBSCRIPTIONS__\n"); + target.add(" - name: ServiceSubscription\n in: path\n description: ServiceSubscription\n required: true\n example: __SERVICESUBSCRIPTION__\n"); + List pathParams = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + if(javaTypeElement.getPathParamYAML(javaTypeElement.name()) != null) + pathParams.add(javaTypeElement.getPathParamYAML(javaTypeElement.name())); + } + logger.debug(String.join("|", pathParams)); + assertThat(new ArrayList<>(pathParams),both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + } + + @Test + public void testGetHTMLAnnotation() { + ArrayList target = new ArrayList(); + target.add(" " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " @org.onap.aai.annotations.Metadata(description=\"Namespace for business related constructs\")" + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR); + target.add(" " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " @org.onap.aai.annotations.Metadata(description=\"Collection of customer identifiers to provide linkage back to BSS information.\")" + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR); + target.add(" " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " @org.onap.aai.annotations.Metadata(description=\"customer identifiers to provide linkage back to BSS information.\",nameProps=\"subscriber-name\",indexedProps=\"subscriber-name,global-customer-id,subscriber-type\",searchable=\"global-customer-id,subscriber-name\",uniqueProps=\"global-customer-id\",container=\"customers\",namespace=\"business\")" + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR); + target.add(" " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " @org.onap.aai.annotations.Metadata(description=\"Collection of objects that group service instances.\")" + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR); + target.add(" " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " @org.onap.aai.annotations.Metadata(description=\"Object that group service instances.\",indexedProps=\"service-type\",dependentOn=\"customer\",container=\"service-subscriptions\",crossEntityReference=\"service-instance,service-type\")" + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR + " " + OxmFileProcessor.LINE_SEPARATOR); + List annotes = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + if(StringUtils.isNotEmpty(javaTypeElement.getHTMLAnnotation(javaTypeElement.name(),""))) + annotes.add(javaTypeElement.getHTMLAnnotation(javaTypeElement.name(), " ")); + } + logger.debug("result:"); + logger.debug(String.join("|", annotes)); + logger.debug("Expected:"); + logger.debug(String.join("|", target)); + assertThat(new ArrayList<>(annotes),both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + + } + + @Test + public void testGetTypePropertyYAML() { + ArrayList target = new ArrayList(); + target.add(" Inventory:\n type: "); + target.add(" Business:\n type: description: Namespace for business related constructs\n"); + target.add(" Customers:\n type: description: Collection of customer identifiers to provide linkage back to BSS information.\n"); + target.add(" Customer:\n type: description: customer identifiers to provide linkage back to BSS information.\n"); + target.add(" ServiceSubscriptions:\n type: description: Collection of objects that group service instances.\n"); + target.add(" ServiceSubscription:\n type: description: Object that group service instances.\n"); + List types = new ArrayList(); + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + if(javaTypeElement.getTypePropertyYAML() != null) + types.add(javaTypeElement.getTypePropertyYAML()); + } + assertThat(new ArrayList<>(types),both(everyItem(is(in(target.toArray())))).and(containsInAnyOrder(target.toArray()))); + } + + @Test + public void testIsStandardType() { + HashMap> map = new HashMap>(); + HashMap> target = new HashMap>(); + target.put("Customer", new ArrayList<>(Arrays.asList("global-customer-id","subscriber-name", "subscriber-type","resource-version"))); + target.put("Business", new ArrayList<>()); + target.put("Inventory", new ArrayList<>()); + target.put("Customers", new ArrayList<>()); + target.put("ServiceSubscriptions", new ArrayList<>()); + target.put("ServiceSubscription", new ArrayList<>(Arrays.asList("service-type", "temp-ub-sub-account-id", "resource-version"))); + + for ( int i = 0; i < javaTypeNodes.getLength(); ++i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + ArrayList addTypes = new ArrayList(); + NodeList xmlElementNodes = javaTypeElement.getElementsByTagName("xml-element"); + String name=javaTypeElement.name(); + for ( int j = 0; j < xmlElementNodes.getLength(); ++j ) { + XSDElement xmlElement = new XSDElement((Element) xmlElementNodes.item(j)); + if(xmlElement.isStandardType()) + addTypes.add(xmlElement.name()); + } + map.put(name,addTypes); + } + for(String key : map.keySet()) { + assertThat(map.get(key),equalTo(target.get(key))); + } + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDJavaTypeTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDJavaTypeTest.java new file mode 100644 index 0000000..556a281 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/XSDJavaTypeTest.java @@ -0,0 +1,101 @@ +/** + * ============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.schemagen.genxsd; + +import org.junit.Before; +import org.junit.Test; +import org.w3c.dom.Element; + +import java.util.HashMap; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.junit.Assert.assertThat; + +public class XSDJavaTypeTest extends XSDElementTest { + + @Before + public void setUp() throws Exception { + super.setUp(); + } + + @Test + public void testXSDJavaTypeElement() { + HashMap map = new HashMap(); + HashMap target = new HashMap(); + target.put("Customer", "global-customer-id"); + target.put("Business", "customers"); + target.put("Inventory", "business"); + target.put("Customers","customer"); + target.put("ServiceSubscriptions", "service-subscription"); + target.put("ServiceSubscription", "service-type"); + + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + XSDJavaType javaType = new XSDJavaType(javaTypeElement); + map.put(javaType.name(),javaType.getItemName()); + } + for(String key : map.keySet()) { + assertThat("For key: "+key,map.get(key),equalTo(target.get(key))); + } + } + + @Test + public void testGetItemName() { + HashMap map = new HashMap(); + HashMap target = new HashMap(); + target.put("Customer", "global-customer-id"); + target.put("Business", "customers"); + target.put("Inventory", "business"); + target.put("Customers","customer"); + target.put("ServiceSubscriptions", "service-subscription"); + target.put("ServiceSubscription", "service-type"); + + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + XSDJavaType javaType = new XSDJavaType(javaTypeElement); + map.put(javaType.name(),javaType.getItemName()); + } + for(String key : map.keySet()) { + assertThat("For key: "+key,map.get(key),equalTo(target.get(key))); + } + } + + @Test + public void testGetArrayType() { + HashMap map = new HashMap(); + HashMap target = new HashMap(); + target.put("Customer", null); + target.put("Business", null); + target.put("Inventory", null); + target.put("Customers","customer"); + target.put("ServiceSubscriptions", "service-subscription"); + target.put("ServiceSubscription", null); + + for ( int i = 0; i < javaTypeNodes.getLength(); ++ i ) { + XSDElement javaTypeElement = new XSDElement((Element) javaTypeNodes.item(i)); + XSDJavaType javaType = new XSDJavaType(javaTypeElement); + map.put(javaType.name(),javaType.getArrayType()); + } + for(String key : map.keySet()) { + assertThat(map.get(key),equalTo(target.get(key))); + } + } + +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java new file mode 100644 index 0000000..7246870 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java @@ -0,0 +1,937 @@ +/** + * ============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.schemagen.genxsd; + +import com.google.common.collect.Multimap; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.edges.EdgeIngestor; +import org.onap.aai.edges.EdgeRule; +import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.schemagen.SwaggerGenerationConfiguration; +import org.onap.aai.schemagen.testutils.TestUtilConfigTranslatorforBusiness; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +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.w3c.dom.Element; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.SortedSet; +import java.util.TreeSet; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; + + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { + SchemaVersions.class, + SchemaLocationsBean.class, + TestUtilConfigTranslatorforBusiness.class, + SchemaVersions.class, + EdgeIngestor.class, + NodeIngestor.class, + SwaggerGenerationConfiguration.class + +}) +@TestPropertySource(properties = { + "schema.uri.base.path = /aai", + "schema.xsd.maxoccurs = 5000" +}) +public class YAMLfromOXMTest { + @Autowired + EdgeIngestor edgeIngestor; + + @Autowired + NodeIngestor nodeIngestor; + private static final Logger logger = LoggerFactory.getLogger("YAMLfromOXMTest.class"); + private static final String OXMFILENAME = "src/test/resources/oxm/business_oxm_v11.xml"; + private static final String EDGEFILENAME = "src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json"; + public static AnnotationConfigApplicationContext ctx = null; + private static String testXML; + protected static final String SERVICE_NAME = "JUNIT"; + boolean first = true; + + @Autowired + YAMLfromOXM yamlFromOxm; + + @Autowired + SchemaVersions schemaVersions; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + System.setProperty("AJSC_HOME", "."); + System.setProperty("BUNDLECONFIG_DIR", "src/test/resources/bundleconfig-local"); + System.setProperty("aai.service.name", SERVICE_NAME); + + XSDElementTest x = new XSDElementTest(); + x.setUp(); + testXML = x.testXML; + logger.debug(testXML); + BufferedWriter bw = new BufferedWriter(new FileWriter(OXMFILENAME)); + bw.write(testXML); + bw.close(); + BufferedWriter bw1 = new BufferedWriter(new FileWriter(EDGEFILENAME)); + bw1.write(EdgeDefs()); + bw1.close(); + + + + + + } + + @Before + public void setUp() throws Exception { + + } + + @Test + public void AtestIngestors() throws EdgeRuleNotFoundException { + Multimap results = edgeIngestor.getAllRules(schemaVersions.getDefaultVersion()); + SortedSet ss=new TreeSet(results.keySet()); + for(String key : ss) { + results.get(key).stream().filter((i) -> ((! i.isPrivateEdge()))).forEach((i) ->{ EdgeDescription ed = new EdgeDescription(i); System.out.println(ed.getRuleKey()); } ); + } + Document doc = nodeIngestor.getSchema(schemaVersions.getDefaultVersion()); + assertNotNull(doc); + } + + @Test + public void testGetDocumentHeader() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String header = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + yamlFromOxm.process(); + header = yamlFromOxm.getDocumentHeader(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("Header:\n"+header,header, is(YAMLheader())); + } + + @Test + public void testProcess() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + fileContent = yamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("FileContent-TestProcess:\n"+fileContent,fileContent, is(YAMLresult())); + } + + + @Test + public void testYAMLfromOXMFileVersionFile() throws IOException { + String outfileName = "testXML.xml"; + File XMLfile = new File(outfileName); + XMLfile.createNewFile(); + BufferedWriter bw = null; + Charset charset = Charset.forName("UTF-8"); + Path path = Paths.get(outfileName); + bw = Files.newBufferedWriter(path, charset); + bw.write(testXML); + bw.close(); + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + fileContent = yamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + XMLfile.delete(); + assertThat("FileContent-OXMFileVersionFile:\n"+fileContent,fileContent, is(YAMLresult())); + } + + @Test + public void testYAMLfromOXMStringVersionFile() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String fileContent = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + fileContent = yamlFromOxm.process(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("FileContent-OXMStringVersionFile:\n"+fileContent,fileContent, is(YAMLresult())); + } + + @Test + public void testAppendDefinitions() { + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String definitions = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + yamlFromOxm.process(); + definitions = yamlFromOxm.appendDefinitions(); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("Definitions:\n"+definitions,definitions, is(YAMLdefs()+YAMLpatchDefs()+YAMLgetDefs())); + } + + @Test + public void testGetXMLRootElementName() { + String target = "RootElement=customer"; + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + Element customer = null; + String root = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + yamlFromOxm.process(); + customer = yamlFromOxm.getJavaTypeElementSwagger("Customer"); + root = yamlFromOxm.getXMLRootElementName(customer); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("RootElement="+root, is(target)); + } + + @Test + public void testGetXmlRootElementName() { + String target = "RootElement=customer"; + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + String root = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + yamlFromOxm.process(); + root = yamlFromOxm.getXmlRootElementName("Customer"); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("RootElement="+root, is(target)); + } + + @Test + public void testGetJavaTypeElementSwagger() { + String target = "Element=java-type/Customer"; + SchemaVersion v = schemaVersions.getAppRootVersion(); + String apiVersion = v.toString(); + Element customer = null; + try { + yamlFromOxm.setXmlVersion(testXML, v); + yamlFromOxm.process(); + customer = yamlFromOxm.getJavaTypeElementSwagger("Customer"); + } catch(Exception e) { + e.printStackTrace(); + } + assertThat("Element="+customer.getNodeName()+"/"+customer.getAttribute("name"), is(target)); + } + + public String YAMLresult() { + StringBuilder sb = new StringBuilder(32368); + sb.append(YAMLheader()); + sb.append(YAMLops()); + sb.append(YAMLdefs()); + sb.append(YAMLpatchDefs()); + sb.append(YAMLgetDefs()); + return sb.toString(); + } + public String YAMLheader() { + StringBuilder sb = new StringBuilder(1500); + sb.append("swagger: \"2.0\"\n"); + sb.append("info:\n"); + sb.append(" description: |\n"); + sb.append("\n"); + sb.append(" [Differences versus the previous schema version](apidocs/aai_swagger_v11.diff)\n"); + sb.append("\n"); + sb.append(" Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.\n"); + sb.append("\n"); + sb.append(" Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.\n"); + sb.append("\n"); + sb.append(" You may obtain a copy of the License at\n"); + sb.append("\n"); + sb.append(" (https://creativecommons.org/licenses/by/4.0/)\n"); + sb.append("\n"); + sb.append(" 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.\n"); + sb.append("\n"); + sb.append(" This document is best viewed with Firefox or Chrome. Nodes can be found by appending /#/definitions/node-type-to-find to the path to this document. Edge definitions can be found with the node definitions.\n"); + sb.append(" version: \"v11\"\n"); + sb.append(" title: Active and Available Inventory REST API\n"); + sb.append(" license:\n"); + sb.append(" name: Apache 2.0\n"); + sb.append(" url: http://www.apache.org/licenses/LICENSE-2.0.html\n"); + sb.append(" contact:\n"); + sb.append(" name:\n"); + sb.append(" url:\n"); + sb.append(" email:\n"); + sb.append("host:\n"); + sb.append("basePath: /aai/v11\n"); + sb.append("schemes:\n"); + sb.append(" - https\n"); + sb.append("paths:\n"); + return sb.toString(); + } + + public String YAMLops() { + StringBuilder sb = new StringBuilder(16384); + sb.append(" /business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}:\n"); + sb.append(" get:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: returns service-subscription\n"); + sb.append(" description: returns service-subscription\n"); + sb.append(" operationId: getBusinessCustomersCustomerServiceSubscriptionsServiceSubscription\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"200\":\n"); + sb.append(" description: successful operation\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/getDefinitions/service-subscription\"\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: service-type\n"); + sb.append(" in: path\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __SERVICE-TYPE__\n"); + sb.append(" put:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: create or update an existing service-subscription\n"); + sb.append(" description: |\n"); + sb.append(" Create or update an existing service-subscription.\n"); + sb.append(" #\n"); + sb.append(" Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement. An example can be found in the [PATCH section] below\n"); + sb.append(" operationId: createOrUpdateBusinessCustomersCustomerServiceSubscriptionsServiceSubscription\n"); + sb.append(" consumes:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: service-type\n"); + sb.append(" in: path\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __SERVICE-TYPE__\n"); + sb.append(" - name: body\n"); + sb.append(" in: body\n"); + sb.append(" description: service-subscription object that needs to be created or updated. [Valid relationship examples shown here](apidocs/relations/v11/BusinessCustomersCustomerServiceSubscriptionsServiceSubscription.json)\n"); + sb.append(" required: true\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/definitions/service-subscription\"\n"); + sb.append(" patch:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: update an existing service-subscription\n"); + sb.append(" description: |\n"); + sb.append(" Update an existing service-subscription\n"); + sb.append(" #\n"); + sb.append(" Note: Endpoints that are not devoted to object relationships support both PUT and PATCH operations.\n"); + sb.append(" The PUT operation will entirely replace an existing object.\n"); + sb.append(" The PATCH operation sends a \"description of changes\" for an existing object. The entire set of changes must be applied. An error result means no change occurs.\n"); + sb.append(" #\n"); + sb.append(" Other differences between PUT and PATCH are:\n"); + sb.append(" #\n"); + sb.append(" - For PATCH, you can send any of the values shown in sample REQUEST body. There are no required values.\n"); + sb.append(" - For PATCH, resource-id which is a required REQUEST body element for PUT, must not be sent.\n"); + sb.append(" - PATCH cannot be used to update relationship elements; there are dedicated PUT operations for this.\n"); + sb.append(" operationId: UpdateBusinessCustomersCustomerServiceSubscriptionsServiceSubscription\n"); + sb.append(" consumes:\n"); + sb.append(" - application/json\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" responses:\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: service-type\n"); + sb.append(" in: path\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __SERVICE-TYPE__\n"); + sb.append(" - name: body\n"); + sb.append(" in: body\n"); + sb.append(" description: service-subscription object that needs to be updated.\n"); + sb.append(" required: true\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/patchDefinitions/service-subscription\"\n"); + sb.append(" delete:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: delete an existing service-subscription\n"); + sb.append(" description: delete an existing service-subscription\n"); + sb.append(" operationId: deleteBusinessCustomersCustomerServiceSubscriptionsServiceSubscription\n"); + sb.append(" consumes:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: service-type\n"); + sb.append(" in: path\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __SERVICE-TYPE__\n"); + sb.append(" - name: resource-version\n"); + sb.append(" in: query\n"); + sb.append(" description: resource-version for concurrency\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" /business/customers/customer/{global-customer-id}/service-subscriptions:\n"); + sb.append(" get:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: returns service-subscriptions\n"); + sb.append(" description: returns service-subscriptions\n"); + sb.append(" operationId: getBusinessCustomersCustomerServiceSubscriptions\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"200\":\n"); + sb.append(" description: successful operation\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/getDefinitions/service-subscriptions\"\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: service-type\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + sb.append(" /business/customers/customer/{global-customer-id}:\n"); + sb.append(" get:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: returns customer\n"); + sb.append(" description: returns customer\n"); + sb.append(" operationId: getBusinessCustomersCustomer\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"200\":\n"); + sb.append(" description: successful operation\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/getDefinitions/customer\"\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" put:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: create or update an existing customer\n"); + sb.append(" description: |\n"); + sb.append(" Create or update an existing customer.\n"); + sb.append(" #\n"); + sb.append(" Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement. An example can be found in the [PATCH section] below\n"); + sb.append(" operationId: createOrUpdateBusinessCustomersCustomer\n"); + sb.append(" consumes:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: body\n"); + sb.append(" in: body\n"); + sb.append(" description: customer object that needs to be created or updated. [Valid relationship examples shown here](apidocs/relations/v11/BusinessCustomersCustomer.json)\n"); + sb.append(" required: true\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" patch:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: update an existing customer\n"); + sb.append(" description: |\n"); + sb.append(" Update an existing customer\n"); + sb.append(" #\n"); + sb.append(" Note: Endpoints that are not devoted to object relationships support both PUT and PATCH operations.\n"); + sb.append(" The PUT operation will entirely replace an existing object.\n"); + sb.append(" The PATCH operation sends a \"description of changes\" for an existing object. The entire set of changes must be applied. An error result means no change occurs.\n"); + sb.append(" #\n"); + sb.append(" Other differences between PUT and PATCH are:\n"); + sb.append(" #\n"); + sb.append(" - For PATCH, you can send any of the values shown in sample REQUEST body. There are no required values.\n"); + sb.append(" - For PATCH, resource-id which is a required REQUEST body element for PUT, must not be sent.\n"); + sb.append(" - PATCH cannot be used to update relationship elements; there are dedicated PUT operations for this.\n"); + sb.append(" operationId: UpdateBusinessCustomersCustomer\n"); + sb.append(" consumes:\n"); + sb.append(" - application/json\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" responses:\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: body\n"); + sb.append(" in: body\n"); + sb.append(" description: customer object that needs to be updated.\n"); + sb.append(" required: true\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/patchDefinitions/customer\"\n"); + sb.append(" delete:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: delete an existing customer\n"); + sb.append(" description: delete an existing customer\n"); + sb.append(" operationId: deleteBusinessCustomersCustomer\n"); + sb.append(" consumes:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: path\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" example: __GLOBAL-CUSTOMER-ID__\n"); + sb.append(" - name: resource-version\n"); + sb.append(" in: query\n"); + sb.append(" description: resource-version for concurrency\n"); + sb.append(" required: true\n"); + sb.append(" type: string\n"); + sb.append(" /business/customers:\n"); + sb.append(" get:\n"); + sb.append(" tags:\n"); + sb.append(" - Business\n"); + sb.append(" summary: returns customers\n"); + sb.append(" description: returns customers\n"); + sb.append(" operationId: getBusinessCustomers\n"); + sb.append(" produces:\n"); + sb.append(" - application/json\n"); + sb.append(" - application/xml\n"); + sb.append(" responses:\n"); + sb.append(" \"200\":\n"); + sb.append(" description: successful operation\n"); + sb.append(" schema:\n"); + sb.append(" $ref: \"#/getDefinitions/customers\"\n"); + sb.append(" \"default\":\n"); + sb.append(" null parameters:\n"); + sb.append(" - name: global-customer-id\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + sb.append(" - name: subscriber-name\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + sb.append(" - name: subscriber-type\n"); + sb.append(" in: query\n"); + sb.append(" description:\n"); + sb.append(" required: false\n"); + sb.append(" type: string\n"); + return sb.toString(); + } + public String YAMLdefs() { + StringBuilder sb = new StringBuilder(8092); + sb.append("definitions:\n"); + sb.append(" business:\n"); + sb.append(" description: |\n"); + sb.append(" Namespace for business related constructs\n"); + sb.append(" properties:\n"); + sb.append(" customers:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" customer:\n"); + sb.append(" description: |\n"); + sb.append(" customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - FROM service-subscription (CHILD of customer, service-subscription BelongsTo customer, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this CUSTOMER node is deleted, this FROM node is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - global-customer-id\n"); + sb.append(" - subscriber-name\n"); + sb.append(" - subscriber-type\n"); + sb.append(" properties:\n"); + sb.append(" global-customer-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" subscriber-name:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber name, an alternate way to retrieve a customer.\n"); + sb.append(" subscriber-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber type, a way to provide VID with only the INFRA customers.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/service-subscription\"\n"); + sb.append(" customers:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" properties:\n"); + sb.append(" customer:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/definitions/customer\"\n"); + sb.append(" inventory:\n"); + sb.append(" properties:\n"); + sb.append(" business:\n"); + sb.append(" type: object\n"); + sb.append(" $ref: \"#/definitions/business\"\n"); + sb.append(" nodes:\n"); + sb.append(" properties:\n"); + sb.append(" inventory-item-data:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/definitions/inventory-item-data\"\n"); + sb.append(" service-subscription:\n"); + sb.append(" description: |\n"); + sb.append(" Object that group service instances.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - TO customer (PARENT of service-subscription, service-subscription BelongsTo customer, MANY2ONE)(4)\n"); + sb.append(" - TO tenant( service-subscription Uses tenant, MANY2MANY)\n"); + sb.append(" - FROM service-instance (CHILD of service-subscription, service-instance BelongsTo service-subscription, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this SERVICE-SUBSCRIPTION node is deleted, this FROM node is DELETED also\n"); + sb.append(" -(4) IF this TO node is deleted, this SERVICE-SUBSCRIPTION is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - service-type\n"); + sb.append(" properties:\n"); + sb.append(" service-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" temp-ub-sub-account-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: This property will be deleted from A&AI in the near future. Only stop gap solution.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of objects that group service instances.\n"); + sb.append(" properties:\n"); + sb.append(" service-subscription:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/definitions/service-subscription\"\n"); + return sb.toString(); + } + public String YAMLpatchDefs() { + StringBuilder sb = new StringBuilder(8092); + sb.append("patchDefinitions:\n"); + sb.append(" business:\n"); + sb.append(" description: |\n"); + sb.append(" Namespace for business related constructs\n"); + sb.append(" properties:\n"); + sb.append(" customers:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/patchDefinitions/customer\"\n"); + sb.append(" customer:\n"); + sb.append(" description: |\n"); + sb.append(" customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - FROM service-subscription (CHILD of customer, service-subscription BelongsTo customer, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this CUSTOMER node is deleted, this FROM node is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - global-customer-id\n"); + sb.append(" - subscriber-name\n"); + sb.append(" - subscriber-type\n"); + sb.append(" properties:\n"); + sb.append(" global-customer-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" subscriber-name:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber name, an alternate way to retrieve a customer.\n"); + sb.append(" subscriber-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber type, a way to provide VID with only the INFRA customers.\n"); + sb.append(" customers:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" properties:\n"); + sb.append(" customer:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/patchDefinitions/customer\"\n"); + sb.append(" inventory:\n"); + sb.append(" properties:\n"); + sb.append(" business:\n"); + sb.append(" type: object\n"); + sb.append(" $ref: \"#/patchDefinitions/business\"\n"); + sb.append(" nodes:\n"); + sb.append(" properties:\n"); + sb.append(" inventory-item-data:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/patchDefinitions/inventory-item-data\"\n"); + sb.append(" service-subscription:\n"); + sb.append(" description: |\n"); + sb.append(" Object that group service instances.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - TO customer (PARENT of service-subscription, service-subscription BelongsTo customer, MANY2ONE)(4)\n"); + sb.append(" - TO tenant( service-subscription Uses tenant, MANY2MANY)\n"); + sb.append(" - FROM service-instance (CHILD of service-subscription, service-instance BelongsTo service-subscription, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this SERVICE-SUBSCRIPTION node is deleted, this FROM node is DELETED also\n"); + sb.append(" -(4) IF this TO node is deleted, this SERVICE-SUBSCRIPTION is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - service-type\n"); + sb.append(" properties:\n"); + sb.append(" service-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" temp-ub-sub-account-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: This property will be deleted from A&AI in the near future. Only stop gap solution.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of objects that group service instances.\n"); + sb.append(" properties:\n"); + sb.append(" service-subscription:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/patchDefinitions/service-subscription\"\n"); + return sb.toString(); + } + public String YAMLgetDefs() { + StringBuilder sb = new StringBuilder(8092); + sb.append("getDefinitions:\n"); + sb.append(" business:\n"); + sb.append(" description: |\n"); + sb.append(" Namespace for business related constructs\n"); + sb.append(" properties:\n"); + sb.append(" customers:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/getDefinitions/customer\"\n"); + sb.append(" customer:\n"); + sb.append(" description: |\n"); + sb.append(" customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - FROM service-subscription (CHILD of customer, service-subscription BelongsTo customer, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this CUSTOMER node is deleted, this FROM node is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - global-customer-id\n"); + sb.append(" - subscriber-name\n"); + sb.append(" - subscriber-type\n"); + sb.append(" properties:\n"); + sb.append(" global-customer-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: Global customer id used across to uniquely identify customer.\n"); + sb.append(" subscriber-name:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber name, an alternate way to retrieve a customer.\n"); + sb.append(" subscriber-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Subscriber type, a way to provide VID with only the INFRA customers.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/getDefinitions/service-subscription\"\n"); + sb.append(" customers:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of customer identifiers to provide linkage back to BSS information.\n"); + sb.append(" properties:\n"); + sb.append(" customer:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/getDefinitions/customer\"\n"); + sb.append(" inventory:\n"); + sb.append(" properties:\n"); + sb.append(" business:\n"); + sb.append(" type: object\n"); + sb.append(" $ref: \"#/getDefinitions/business\"\n"); + sb.append(" nodes:\n"); + sb.append(" properties:\n"); + sb.append(" inventory-item-data:\n"); + sb.append(" type: array\n"); + sb.append(" items:\n"); + sb.append(" $ref: \"#/getDefinitions/inventory-item-data\"\n"); + sb.append(" service-subscription:\n"); + sb.append(" description: |\n"); + sb.append(" Object that group service instances.\n"); + sb.append(" ###### Related Nodes\n"); + sb.append(" - TO customer (PARENT of service-subscription, service-subscription BelongsTo customer, MANY2ONE)(4)\n"); + sb.append(" - TO tenant( service-subscription Uses tenant, MANY2MANY)\n"); + sb.append(" - FROM service-instance (CHILD of service-subscription, service-instance BelongsTo service-subscription, MANY2ONE)(1)\n"); + sb.append("\n"); + sb.append(" -(1) IF this SERVICE-SUBSCRIPTION node is deleted, this FROM node is DELETED also\n"); + sb.append(" -(4) IF this TO node is deleted, this SERVICE-SUBSCRIPTION is DELETED also\n"); + sb.append(" required:\n"); + sb.append(" - service-type\n"); + sb.append(" properties:\n"); + sb.append(" service-type:\n"); + sb.append(" type: string\n"); + sb.append(" description: Value defined by orchestration to identify this service.\n"); + sb.append(" temp-ub-sub-account-id:\n"); + sb.append(" type: string\n"); + sb.append(" description: This property will be deleted from A&AI in the near future. Only stop gap solution.\n"); + sb.append(" resource-version:\n"); + sb.append(" type: string\n"); + sb.append(" description: Used for optimistic concurrency. Must be empty on create, valid on update and delete.\n"); + sb.append(" service-subscriptions:\n"); + sb.append(" description: |\n"); + sb.append(" Collection of objects that group service instances.\n"); + sb.append(" properties:\n"); + sb.append(" service-subscription:\n"); + sb.append(" type: array\n"); + sb.append(" items: \n"); + sb.append(" $ref: \"#/getDefinitions/service-subscription\"\n"); + return sb.toString(); + } + public static String EdgeDefs() { + StringBuilder sb = new StringBuilder(8092); + sb.append("{\n" + + " \"rules\": [\n"); + sb.append(" {\n"); + sb.append(" \"from\": \"service-subscription\",\n"); + sb.append(" \"to\": \"customer\",\n" + + " \"label\": \"org.onap.relationships.inventory.BelongsTo\",\n" + + " \"direction\": \"OUT\",\n" + + " \"multiplicity\": \"MANY2ONE\",\n" + + " \"contains-other-v\": \"!${direction}\",\n" + + " \"delete-other-v\": \"!${direction}\",\n" + + " \"prevent-delete\": \"NONE\",\n" + + " \"default\": \"true\",\n" + + " \"description\":\"\"\n"); + sb.append(" },\n"); + sb.append(" {\n" + + " \"from\": \"service-instance\",\n" + + " \"to\": \"service-subscription\",\n" + + " \"label\": \"org.onap.relationships.inventory.BelongsTo\",\n" + + " \"direction\": \"OUT\",\n" + + " \"multiplicity\": \"MANY2ONE\",\n" + + " \"contains-other-v\": \"!${direction}\",\n" + + " \"delete-other-v\": \"!${direction}\",\n" + + " \"prevent-delete\": \"NONE\",\n" + + " \"default\": \"true\",\n" + + " \"description\":\"\"\n" + + " },\n"); + sb.append(" {\n" + + " \"from\": \"service-subscription\",\n" + + " \"to\": \"tenant\",\n" + + " \"label\": \"org.onap.relationships.inventory.Uses\",\n" + + " \"direction\": \"OUT\",\n" + + " \"multiplicity\": \"MANY2MANY\",\n" + + " \"contains-other-v\": \"NONE\",\n" + + " \"delete-other-v\": \"NONE\",\n" + + " \"prevent-delete\": \"NONE\",\n" + + " \"default\": \"true\",\n" + + " \"description\":\"\"\n" + + " }"); + sb.append(" ]\n" + + "}\n"); + return sb.toString(); + } +} + diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforBusiness.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforBusiness.java new file mode 100644 index 0000000..12683b4 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforBusiness.java @@ -0,0 +1,73 @@ +/** + * ============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.schemagen.testutils; + +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +public class TestUtilConfigTranslatorforBusiness extends ConfigTranslator { + + public TestUtilConfigTranslatorforBusiness(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + } + + @Override + public Map> getNodeFiles() { + + List files11 = new ArrayList<>(); + files11.add("src/test/resources/oxm/business_oxm_v11.xml"); + + List 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> input = new TreeMap<>(); + input.put(new SchemaVersion("v11"), files11); + input.put(schemaVersions.getDefaultVersion(), files13); + return input; + } + + @Override + public Map> getEdgeFiles() { + List files = new ArrayList<>(); + files.add("src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json"); + Map> input = new TreeMap<>(); + input.put(schemaVersions.getDefaultVersion(), files); + + List files2 = new ArrayList<>(); + files2.add("src/test/resources/dbedgerules/test.json"); + + List 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-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforDataLink.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforDataLink.java new file mode 100644 index 0000000..5117245 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforDataLink.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.schemagen.testutils; + +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +public class TestUtilConfigTranslatorforDataLink extends ConfigTranslator { + + public TestUtilConfigTranslatorforDataLink(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + } + + @Override + public Map> getNodeFiles() { + + Map> input = new TreeMap<>(); + input.put(new SchemaVersion("v1"), Arrays.asList("src/test/resources/oxm/dbalias_oxm_one.xml")); + input.put(new SchemaVersion("v2"), Arrays.asList("src/test/resources/oxm/dbalias_oxm_two.xml")); + input.put(new SchemaVersion("v3"), Arrays.asList("src/test/resources/oxm/dbalias_oxm_three.xml")); + input.put(new SchemaVersion("v4"), Arrays.asList("src/test/resources/oxm/dbalias_oxm_four.xml")); + return input; + } + + @Override + public Map> getEdgeFiles() { + Map> input = new TreeMap<>(); + input.put(new SchemaVersion("v1"), Arrays.asList("src/test/resources/dbedgerules/DbEdgerules_one.json")); + input.put(new SchemaVersion("v2"), Arrays.asList("src/test/resources/dbedgerules/DbEdgerules_two.json")); + input.put(new SchemaVersion("v3"), Arrays.asList("src/test/resources/dbedgerules/DbEdgerules_three.json")); + input.put(new SchemaVersion("v4"), Arrays.asList("src/test/resources/dbedgerules/DbEdgerules_four.json")); + return input; + } +} diff --git a/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforEdges.java b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforEdges.java new file mode 100644 index 0000000..7eaa6f5 --- /dev/null +++ b/aai-schema-gen/src/test/java/org/onap/aai/schemagen/testutils/TestUtilConfigTranslatorforEdges.java @@ -0,0 +1,73 @@ +/** + * ============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.schemagen.testutils; + +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +public class TestUtilConfigTranslatorforEdges extends ConfigTranslator { + + public TestUtilConfigTranslatorforEdges(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + } + + @Override + public Map> getNodeFiles() { + List files11 = new ArrayList<>(); + files11.add("src/test/resources/oxm/business_oxm_v11.xml"); + + List 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> input = new TreeMap<>(); + input.put(new SchemaVersion("v11"), files11); + input.put(new SchemaVersion("v13"), files13); + return input; + } + + @Override + public Map> getEdgeFiles() { + List files = new ArrayList<>(); + files.add("src/test/resources/dbedgerules/test.json"); + files.add("src/test/resources/dbedgerules/test2.json"); + Map> input = new TreeMap<>(); + input.put(schemaVersions.getDefaultVersion(), files); + + List files2 = new ArrayList<>(); + files2.add("src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json"); + input.put(new SchemaVersion("v10"), files2); + List files3 = new ArrayList<>(); + files3.add("src/test/resources/dbedgerules/EdgeDescriptionRules_test.json"); + input.put(new SchemaVersion("v11"), files3); + + return input; + } +} diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json new file mode 100644 index 0000000..c25f1fb --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json @@ -0,0 +1,39 @@ +{ + "rules": [ + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + } ] +} diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_PrivateEdges.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_PrivateEdges.json new file mode 100644 index 0000000..5940e5c --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_PrivateEdges.json @@ -0,0 +1,77 @@ +{ + "rules": [ + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-private", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"", + "private": "true" + }, + { + "from": "generic-vnf", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + } + ] +} diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_TraversalQueryTest.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_TraversalQueryTest.json new file mode 100644 index 0000000..1534548 --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_TraversalQueryTest.json @@ -0,0 +1,156 @@ +{ + "rules": [ + { + "from": "generic-vnf", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "re-uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "vce", + "to": "vnfc", + "label": "vce-vnfc", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "pserver", + "to": "vce", + "label": "pserver-vce", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "generic-vnf-pserver-A", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "generic-vnf-pserver-B", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "complex", + "to": "generic-vnf", + "label": "complex-generic-vnf-A", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "complex", + "to": "generic-vnf", + "label": "complex-generic-vnf-B", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "sourceLInterface", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "false", + "description": "Hard to describe" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "targetLInterface", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "false", + "description": "Hard to describe" + }, + { + "from": "pserver", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + } + ] +} diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test.json new file mode 100644 index 0000000..b07e778 --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test.json @@ -0,0 +1,251 @@ +{ + "rules": [ + { + "from": "foo", + "to": "bar", + "label": "eats", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "foo", + "to": "bar", + "label": "eatz", + "direction": "IN", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "foo", + "to": "baz", + "label": "isVeryHappyAbout", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "quux", + "to": "foo", + "label": "dancesWith", + "direction": "IN", + "multiplicity": "One2Many", + "contains-other-v": "!${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "test-parent", + "to": "test-child", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "test-cousin", + "to": "test-child", + "label": "annoys", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "test-child", + "to": "test-grandchild", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "test-private-cousin", + "to": "test-child", + "label": "someprivatelabel", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "a", + "to": "b", + "label": "c", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "false", + "description": "Hard to describe" + }, + { + "from": "a", + "to": "b", + "label": "d", + "direction": "IN", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default" : "true", + "description": "Hard to describe" + }, + { + "from": "z", + "to": "y", + "label": "x", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "y", + "to": "z", + "label": "w", + "direction": "IN", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default" : "true", + "description": "Hard to describe" + }, + { + "from": "generic-vnf", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "Hard to describe" + }, + { + "from": "generic-vnf", + "to": "vnfc", + "label": "re-uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "generic-vnf", + "to": "vnfc", + "label": "over-uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "test-node1", + "to": "test-node2", + "label": "hasInterface", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "description": "test", + "prevent-delete": "NONE", + "private": "true" + }, + { + "from": "generic-vnf", + "to": "model-ver", + "label": "hasVnf", + "direction": "IN", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "description": "test", + "prevent-delete": "NONE", + "private": "true" + }, + { + "from": "type-r", + "to": "type-r", + "label": "l", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "description": "test", + "prevent-delete": "NONE" + }, + { + "from": "type-r", + "to": "type-s", + "label": "m", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "description": "test", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.IsA", + "direction": "IN", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test_broken.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test_broken.json new file mode 100644 index 0000000..7258a8c --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgeRules_test_broken.json @@ -0,0 +1,36 @@ +{ + "rules": [ + { + "from": "foo", + "to": "bar", + "label": "eats", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "foo", + "to": "baz", + "label": "isVeryHappyAbout", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "quux", + "to": "foo", + "label": "dancesWith", + "direction": "IN", + "multiplicity": "One2Many", + "contains-other-v": "!${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_four.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_four.json new file mode 100644 index 0000000..e2abdbc --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_four.json @@ -0,0 +1,1808 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "route-target", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_one.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_one.json new file mode 100644 index 0000000..a0fc60a --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_one.json @@ -0,0 +1,1313 @@ +{ + "rules": [ + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model", + "to": "model-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_three.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_three.json new file mode 100644 index 0000000..508d8a2 --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_three.json @@ -0,0 +1,1731 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_two.json b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_two.json new file mode 100644 index 0000000..afc7e91 --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/DbEdgerules_two.json @@ -0,0 +1,1467 @@ +{ + "rules": [ + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model", + "to": "model-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/defaultEdgesTest.json b/aai-schema-gen/src/test/resources/dbedgerules/defaultEdgesTest.json new file mode 100644 index 0000000..2f4baed --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/defaultEdgesTest.json @@ -0,0 +1,52 @@ +{ + "rules": [ + { + "from": "apple", + "to": "orange", + "label": "sitsBy", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"for testing pairs with no default" + }, + { + "from": "apple", + "to": "orange", + "label": "makesSaladWith", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"for testing pairs with no default" + }, + { + "from": "seed", + "to": "plant", + "label": "grows", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "seed", + "to": "plant", + "label": "becomes", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "OUT", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/test.json b/aai-schema-gen/src/test/resources/dbedgerules/test.json new file mode 100644 index 0000000..66691eb --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/test.json @@ -0,0 +1,48 @@ +{ + "rules": [ + { + "from": "foo", + "to": "bar", + "label": "eats", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "foo", + "to": "bar", + "label": "eatz", + "direction": "IN", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "foo", + "to": "baz", + "label": "isVeryHappyAbout", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "quux", + "to": "foo", + "label": "dancesWith", + "direction": "IN", + "multiplicity": "One2Many", + "contains-other-v": "!${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/test2.json b/aai-schema-gen/src/test/resources/dbedgerules/test2.json new file mode 100644 index 0000000..7d94e41 --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/test2.json @@ -0,0 +1,27 @@ +{ + "rules": [ + { + "from": "foo", + "to": "dog", + "label": "pets", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe" + }, + { + "from": "dog", + "to": "puppy", + "label": "caresFor", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "description": "Hard to describe", + "default": "true" + } + ] +} \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/dbedgerules/test3.json b/aai-schema-gen/src/test/resources/dbedgerules/test3.json new file mode 100644 index 0000000..e34e79f --- /dev/null +++ b/aai-schema-gen/src/test/resources/dbedgerules/test3.json @@ -0,0 +1,76 @@ +{ + "rules": [ + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Source", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Destination", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "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-gen/src/test/resources/oxm/business_oxm_v11.xml b/aai-schema-gen/src/test/resources/oxm/business_oxm_v11.xml new file mode 100644 index 0000000..de2d26d --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/business_oxm_v11.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema-gen/src/test/resources/oxm/business_oxm_v12.xml b/aai-schema-gen/src/test/resources/oxm/business_oxm_v12.xml new file mode 100644 index 0000000..648110c --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/business_oxm_v12.xml @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema-gen/src/test/resources/oxm/business_oxm_v13.xml b/aai-schema-gen/src/test/resources/oxm/business_oxm_v13.xml new file mode 100644 index 0000000..3e56c47 --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/business_oxm_v13.xml @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema-gen/src/test/resources/oxm/business_v11.xml b/aai-schema-gen/src/test/resources/oxm/business_v11.xml new file mode 100644 index 0000000..de2d26d --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/business_v11.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema-gen/src/test/resources/oxm/common_oxm_v13.xml b/aai-schema-gen/src/test/resources/oxm/common_oxm_v13.xml new file mode 100644 index 0000000..18f150b --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/common_oxm_v13.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_four.xml b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_four.xml new file mode 100644 index 0000000..b2a215a --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_four.xml @@ -0,0 +1,5514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_one.xml b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_one.xml new file mode 100644 index 0000000..74aca15 --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_one.xml @@ -0,0 +1,4237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_three.xml b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_three.xml new file mode 100644 index 0000000..ec32bbc --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_three.xml @@ -0,0 +1,5398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_two.xml b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_two.xml new file mode 100644 index 0000000..9f5b9dc --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/dbalias_oxm_two.xml @@ -0,0 +1,4716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/aai-schema-gen/src/test/resources/oxm/network_oxm_v13.xml b/aai-schema-gen/src/test/resources/oxm/network_oxm_v13.xml new file mode 100644 index 0000000..0bf7c20 --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/network_oxm_v13.xml @@ -0,0 +1,3412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema-gen/src/test/resources/oxm/serviceDesign_oxm_v13.xml b/aai-schema-gen/src/test/resources/oxm/serviceDesign_oxm_v13.xml new file mode 100644 index 0000000..6bc8988 --- /dev/null +++ b/aai-schema-gen/src/test/resources/oxm/serviceDesign_oxm_v13.xml @@ -0,0 +1,538 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema-gen/src/test/resources/schema-ingest.properties b/aai-schema-gen/src/test/resources/schema-ingest.properties new file mode 100644 index 0000000..fe87a36 --- /dev/null +++ b/aai-schema-gen/src/test/resources/schema-ingest.properties @@ -0,0 +1,17 @@ +# Model Driven Schema Configuration +schema.configuration.location=N/A + +# Schema Nodes and Edges Configuration +schema.nodes.location=../aai-schema/src/main/resources/onap/oxm/ +schema.edges.location=../aai-schema/src/main/resources/onap/dbedgerules/ +schema.nodes.exclusion.list= +schema.edges.exclusion.list= + +# Schema Version Configuration +schema.version.list=v10,v11,v12,v13,v14 +schema.version.depth.start=v10 +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 diff --git a/aai-schema-service/pom.xml b/aai-schema-service/pom.xml index 955d228..658e5ec 100644 --- a/aai-schema-service/pom.xml +++ b/aai-schema-service/pom.xml @@ -35,7 +35,7 @@ 1.8 org.onap.aai.schemaservice.SchemaServiceApp - 1.4.0-SNAPSHOT + 1.4.0 1.5.15.RELEASE diff --git a/aai-schema/.gitignore b/aai-schema/.gitignore new file mode 100644 index 0000000..2f30844 --- /dev/null +++ b/aai-schema/.gitignore @@ -0,0 +1,2 @@ +/bin/ +/.checkstyle diff --git a/aai-schema/LICENSE.TXT b/aai-schema/LICENSE.TXT new file mode 100644 index 0000000..3455862 --- /dev/null +++ b/aai-schema/LICENSE.TXT @@ -0,0 +1,17 @@ +============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========================================================= diff --git a/aai-schema/pom.xml b/aai-schema/pom.xml new file mode 100644 index 0000000..311a50b --- /dev/null +++ b/aai-schema/pom.xml @@ -0,0 +1,150 @@ + + + + 4.0.0 + + org.onap.aai.schema-service + schema-service + 1.0.0-SNAPSHOT + + aai-schema + aai-schema + 1.0.0-SNAPSHOT + + https://nexus.onap.org + + src/main/resources/onap/aai_schema + src/main/xjb/bindings-onap.xjb + + + + + org.onap.aai.schema-service + aai-annotations + ${project.version} + + + junit + junit + 4.12 + test + + + commons-io + commons-io + RELEASE + test + + + + + + org.codehaus.mojo + jaxb2-maven-plugin + 2.2 + + + xjc + + xjc + + + ${project.build.directory}/generated-sources + + ${aai.xsd.source} + + + ${aai.bindings.source} + + + + + edgetagquery\.xsd + + + + true + + -Xannotate + + + + + + + org.jvnet.jaxb2_commons + jaxb2-basics-annotate + 1.0.2 + + + org.onap.aai.schema-service + aai-annotations + ${project.version} + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-site-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + + + org.sonatype.plugins + nexus-staging-maven-plugin + + + + + src/main/resources + false + + **/* + + + + + + + + + central + http://repo1.maven.org/maven2 + + + EvoSuite + EvoSuite Repository + http://www.evosuite.org/m2 + + + + diff --git a/aai-schema/pom.xml.versionsBackup b/aai-schema/pom.xml.versionsBackup new file mode 100644 index 0000000..d1c554a --- /dev/null +++ b/aai-schema/pom.xml.versionsBackup @@ -0,0 +1,150 @@ + + + + 4.0.0 + + org.onap.aai.aai-common + aai-common + 1.3.1-SNAPSHOT + + aai-schema + aai-schema + 1.3.1-SNAPSHOT + + https://nexus.onap.org + + src/main/resources/onap/aai_schema + src/main/xjb/bindings-onap.xjb + + + + + org.onap.aai.aai-common + aai-annotations + ${project.version} + + + junit + junit + 4.12 + test + + + commons-io + commons-io + RELEASE + test + + + + + + org.codehaus.mojo + jaxb2-maven-plugin + 2.2 + + + xjc + + xjc + + + ${project.build.directory}/generated-sources + + ${aai.xsd.source} + + + ${aai.bindings.source} + + + + + edgetagquery\.xsd + + + + true + + -Xannotate + + + + + + + org.jvnet.jaxb2_commons + jaxb2-basics-annotate + 1.0.2 + + + org.onap.aai.aai-common + aai-annotations + ${project.version} + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-site-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + + + org.sonatype.plugins + nexus-staging-maven-plugin + + + + + src/main/resources + false + + **/* + + + + + + + + + central + http://repo1.maven.org/maven2 + + + EvoSuite + EvoSuite Repository + http://www.evosuite.org/m2 + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v10.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v10.xsd new file mode 100644 index 0000000..5dbe35b --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v10.xsd @@ -0,0 +1,6493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",requiredProps="interface-name,is-port-mirrored,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id,bandwidth-up-wan1,bandwidth-down-wan1,bandwidth-up-wan2,bandwidth-down-wan2") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{att-uuid}",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups",uriTemplate="/related-lookups/related-lookup/{related-lookup-uuid}",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",uriTemplate="/property-constraints/property-constraint/{property-constraint-uuid}",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements",uriTemplate="/named-query-elements/named-query-element/{named-query-element-uuid}",requiredProps="named-query-element-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/named-queries/named-query/{named-query-uuid}",requiredProps="named-query-uuid,named-query-name,named-query-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="function code",dbAlias="nfc-naming-code") + + + + + + + @org.onap.aai.annotations.Metadata(description="type",dbAlias="nfc-function") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="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",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="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",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="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") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="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",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,description,type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability",dbAlias="instance-group-type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v11.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v11.xsd new file mode 100644 index 0000000..0a10746 --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v11.xsd @@ -0,0 +1,7668 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",requiredProps="interface-name,is-port-mirrored,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc",requiredProps="esr-system-info-id,user-name,password,system-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}",requiredProps="vip-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}",requiredProps="vip-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MultiVIM will discover and expose EPA capabilities.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}",requiredProps="pf-pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system",requiredProps="ems-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system",requiredProps="vnfm-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system",requiredProps="thirdparty-sdnc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="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",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}",requiredProps="line-of-business-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}",requiredProps="owning-entity-id,owning-entity-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}",requiredProps="platform-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}",requiredProps="project-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups",uriTemplate="/related-lookups/related-lookup/{related-lookup-uuid}",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",uriTemplate="/property-constraints/property-constraint/{property-constraint-uuid}",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements",uriTemplate="/named-query-elements/named-query-element/{named-query-element-uuid}",requiredProps="named-query-element-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/named-queries/named-query/{named-query-uuid}",requiredProps="named-query-uuid,named-query-name,named-query-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,in-maint,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="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",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="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",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="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",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="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") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="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",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,description,type") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability",dbAlias="instance-group-type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large?]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Port Mirror Configuration.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}",requiredProps="configuration-id,configuration-type,configuration-sub-type,orchestration-status,operational-status,configuration-selflink,model-customization-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v12.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v12.xsd new file mode 100644 index 0000000..bacc1ca --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v12.xsd @@ -0,0 +1,8169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",requiredProps="interface-name,is-port-mirrored,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability",requiredProps="hpa-attribute-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities",requiredProps="hpa-capability-id,hpa-feature") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}",requiredProps="vip-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}",requiredProps="vip-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc",requiredProps="esr-system-info-id,user-name,password,system-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MultiVIM will discover and expose EPA capabilities.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}",requiredProps="pf-pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}",requiredProps="operational-environment-id,operational-environment-name,operational-environment-type,operational-environment-status,tenant-context,workload-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system",requiredProps="ems-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system",requiredProps="vnfm-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system",requiredProps="thirdparty-sdnc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="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",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}",requiredProps="line-of-business-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}",requiredProps="owning-entity-id,owning-entity-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}",requiredProps="platform-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}",requiredProps="project-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups",uriTemplate="/related-lookups/related-lookup/{related-lookup-uuid}",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",uriTemplate="/property-constraints/property-constraint/{property-constraint-uuid}",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements",uriTemplate="/named-query-elements/named-query-element/{named-query-element-uuid}",requiredProps="named-query-element-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/named-queries/named-query/{named-query-uuid}",requiredProps="named-query-uuid,named-query-name,named-query-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,in-maint,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be att-ip-version)") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="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",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="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",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="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",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="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") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="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",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,description,type") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability",dbAlias="instance-group-type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}",requiredProps="forwarder-evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}",requiredProps="evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}",requiredProps="configuration-id,configuration-type,configuration-sub-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}",requiredProps="sequence") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}",requiredProps="forwarding-path-id,forwarding-path-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key,aai-uri,aai-uuid",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri,aai-uuid") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v13.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v13.xsd new file mode 100644 index 0000000..abe2a0d --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v13.xsd @@ -0,0 +1,8246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",requiredProps="interface-name,is-port-mirrored,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability",requiredProps="hpa-attribute-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities",requiredProps="hpa-capability-id,hpa-feature") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}",requiredProps="vip-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}",requiredProps="vip-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc",requiredProps="esr-system-info-id,user-name,password,system-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MultiVIM will discover and expose EPA capabilities.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}",requiredProps="pf-pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}",requiredProps="operational-environment-id,operational-environment-name,operational-environment-type,operational-environment-status,tenant-context,workload-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system",requiredProps="ems-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system",requiredProps="vnfm-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system",requiredProps="thirdparty-sdnc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="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",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}",requiredProps="line-of-business-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}",requiredProps="owning-entity-id,owning-entity-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}",requiredProps="platform-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}",requiredProps="project-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups",uriTemplate="/related-lookups/related-lookup/{related-lookup-uuid}",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",uriTemplate="/property-constraints/property-constraint/{property-constraint-uuid}",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements",uriTemplate="/named-query-elements/named-query-element/{named-query-element-uuid}",requiredProps="named-query-element-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/named-queries/named-query/{named-query-uuid}",requiredProps="named-query-uuid,named-query-name,named-query-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,in-maint,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="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",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="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",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="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",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module,automated-assignment") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="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") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="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",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,description,instance-group-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Function") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}",requiredProps="forwarder-evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}",requiredProps="evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}",requiredProps="configuration-id,configuration-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}",requiredProps="sequence") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}",requiredProps="forwarding-path-id,forwarding-path-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}",requiredProps="collection-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="collection name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection function") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key,aai-uri,aai-uuid",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri,aai-uuid") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v14.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v14.xsd new file mode 100644 index 0000000..4fb1ae1 --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v14.xsd @@ -0,0 +1,9917 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",requiredProps="interface-name,is-port-mirrored,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}",requiredProps="nos-server-id,nos-server-name,vendor,nos-server-selflink,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of nos") + + + + + + + @org.onap.aai.annotations.Metadata(description="uCPE vendor") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability",requiredProps="hpa-attribute-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities",requiredProps="hpa-capability-id,hpa-feature") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}",requiredProps="vip-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}",requiredProps="vip-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network",requiredProps="esr-system-info-id,user-name,password,system-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="OpenStack region ID used by MultiCloud plugin to interact with an OpenStack instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}",requiredProps="pf-pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capacity information for compute node",indexedProps="hpa-capacity-key",dependentOn="hpa-capacity",requiredProps="hpa-capacity-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Composite key formed with hpaFeature and append list of hpaFeatureAttributes needed for capacity check") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the capacity (total,free), unit and metadata of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}",requiredProps="operational-environment-id,operational-environment-name,operational-environment-type,operational-environment-status,tenant-context,workload-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}",requiredProps="network-technology-id,network-technology-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system",requiredProps="ems-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system",requiredProps="vnfm-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system",requiredProps="thirdparty-sdnc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="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",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}",requiredProps="line-of-business-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}",requiredProps="owning-entity-id,owning-entity-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}",requiredProps="platform-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}",requiredProps="project-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}",requiredProps="sp-partner-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this sp-partner model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this sp-partner model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements",requiredProps="named-query-element-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",requiredProps="named-query-uuid,named-query-name,named-query-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,in-maint,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}",requiredProps="cp-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connection points.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="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",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="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",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="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",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module,automated-assignment") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="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") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="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",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Software Version",indexedProps="softwareVersionId,isActiveSwVer",dependentOn="pnf",container="pnf",requiredProps="software-version-id,is-active-sw-ver") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier of the software version") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this software-version is the active one (activeSw = true)") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of software versions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv4) for the PNF itself. This is the IPv4 address that the PNF iself can be accessed at.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv6) for the PNF itself. This is the IPv6 address that the PNF iself can be accessed at.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,instance-group-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Function") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}",requiredProps="vlan-mapping-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}",requiredProps="forwarder-evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}",requiredProps="evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}",requiredProps="configuration-id,configuration-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}",requiredProps="sequence") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}",requiredProps="forwarding-path-id,forwarding-path-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}",requiredProps="collection-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="collection name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection function") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN inner id") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN outer id") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network",requiredProps="connectivity-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connectivities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network",requiredProps="dhcp-service-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network",requiredProps="lan-port-config-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network",requiredProps="network-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network",requiredProps="site-resource-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of site-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network",requiredProps="sdwan-vpn-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,system-ipv4,system-ipv6,operational-status",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network",requiredProps="device-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the class of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the version of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ipv4 of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ipv6 of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of devices") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,ipv4-address,ipv6-address,port-type,port-number,device-port-id,wan-port-id,operational-status",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network",requiredProps="wan-port-config-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ipv4-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ipv6-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network",requiredProps="aai-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v15.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v15.xsd new file mode 100644 index 0000000..0ea81e2 --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v15.xsd @@ -0,0 +1,10140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",requiredProps="interface-name,is-port-mirrored,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Priority used for fail-over. Valid values 1-1024, with 1 being the highest priority.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}",requiredProps="nos-server-id,nos-server-name,vendor,nos-server-selflink,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of nos") + + + + + + + @org.onap.aai.annotations.Metadata(description="uCPE vendor") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability",requiredProps="hpa-attribute-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities",requiredProps="hpa-capability-id,hpa-feature") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}",requiredProps="vip-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}",requiredProps="vip-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network",requiredProps="esr-system-info-id,user-name,password,system-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="OpenStack region ID used by MultiCloud plugin to interact with an OpenStack instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upgrade cycle for the cloud region. For AIC regions upgrade cycle is designated by A,B,C etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}",requiredProps="pf-pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capacity information for compute node",indexedProps="hpa-capacity-key",dependentOn="hpa-capacity",requiredProps="hpa-capacity-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Composite key formed with hpaFeature and append list of hpaFeatureAttributes needed for capacity check") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the capacity (total,free), unit and metadata of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}",requiredProps="operational-environment-id,operational-environment-name,operational-environment-type,operational-environment-status,tenant-context,workload-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}",requiredProps="network-technology-id,network-technology-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system",requiredProps="ems-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system",requiredProps="vnfm-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system",requiredProps="thirdparty-sdnc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="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",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}",requiredProps="line-of-business-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}",requiredProps="owning-entity-id,owning-entity-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}",requiredProps="platform-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}",requiredProps="project-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}",requiredProps="sp-partner-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this sp-partner model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this sp-partner model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements",requiredProps="named-query-element-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",requiredProps="named-query-uuid,named-query-name,named-query-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,in-maint,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}",requiredProps="cp-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connection points.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="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",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Aggregate route configs are used on the D2 IPE’s for the Voice services. In 1902, SDNC will create aggregate-route objects and write them to A&AI. ",uniqueProps="route-id",container="aggregate-routes",dependentOn="l3-network",uriTemplate="/aggregate-routes/aggregate-route/{route-id}",requiredProps="route-id,network-start-address,cidr-mask,ip-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of the aggregate-route instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the forwarding-path") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIDR-mask for aggregate route subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies is aggregate route is ipv4 or ipv6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of aggregate routes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="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",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="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",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module,automated-assignment") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="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") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="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",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="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).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Software Version",indexedProps="softwareVersionId,isActiveSwVer",dependentOn="pnf",container="pnf",requiredProps="software-version-id,is-active-sw-ver") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier of the software version") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this software-version is the active one (activeSw = true)") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of software versions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vrf",indexedProps="vrf-id",nameProps="vrf-name",dependentOn="pnf",container="vrfs",uriTemplate="/vrfs/vrf/{vrf-id}",requiredProps="vrf-id,vrf-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VRF UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="VRF Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="VRF Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Route Distinguisher") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of vrf (bridge-domain as an example)") + + + + + + + @org.onap.aai.annotations.Metadata(description="IP address family (v6/v4/both)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv4) for the PNF itself. This is the IPv4 address that the PNF iself can be accessed at.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv6) for the PNF itself. This is the IPv6 address that the PNF iself can be accessed at.") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,instance-group-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Function") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}",requiredProps="vlan-mapping-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}",requiredProps="forwarder-evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}",requiredProps="evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}",requiredProps="configuration-id,configuration-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}",requiredProps="sequence") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}",requiredProps="forwarding-path-id,forwarding-path-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}",requiredProps="collection-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="collection name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection function") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN inner id") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN outer id") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network",requiredProps="connectivity-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connectivities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network",requiredProps="dhcp-service-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network",requiredProps="lan-port-config-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network",requiredProps="network-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network",requiredProps="site-resource-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of site-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network",requiredProps="sdwan-vpn-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,system-ipv4,system-ipv6,operational-status",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network",requiredProps="device-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the class of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the version of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ipv4 of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ipv6 of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of devices") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,ipv4-address,ipv6-address,port-type,port-number,device-port-id,wan-port-id,operational-status",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network",requiredProps="wan-port-config-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ipv4-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ipv6-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network",requiredProps="aai-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key,aai-uri,aai-uuid",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri,aai-uuid") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Contacts store the vendor information and have a relationship to the generic-vnf. In 1902, this will be populated by SDN-GC",uniqueProps="contact-name",container="contacts",namespace="common",nameProps="contact-name,vendor-type",uriTemplate="/common/contacts/contact/{contact-name}",requiredProps="contact-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the contact") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tel no. of contact") + + + + + + + @org.onap.aai.annotations.Metadata(description="e-mail of contact") + + + + + + + @org.onap.aai.annotations.Metadata(description="NI (Network Integrator)SI (System Integrator) 3rd Party LCM") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of contacts") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for common inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v8.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v8.xsd new file mode 100644 index 0000000..7365190 --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v8.xsd @@ -0,0 +1,1918 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v9.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v9.xsd new file mode 100644 index 0000000..4c7aa6d --- /dev/null +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v9.xsd @@ -0,0 +1,6334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.",dbAlias="operational-status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",requiredProps="volume-group-id,volume-group-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.",dbAlias="model-customization-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group",dbAlias="vf-module-model-customization-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-id",uniqueProps="vpn-id",dependentOn="l-interface",container="vlans",requiredProps="vlan-interface") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan",dbAlias="vpn-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface",container="l-interfaces",requiredProps="interface-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",dependentOn="cloud-region",container="group-assignments",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",requiredProps="cloud-owner,cloud-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",requiredProps="interface-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",requiredProps="interface-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version",container="connectors",namespace="business",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",dbAlias="model-invariant-id-local",requires="persona-model-version",visibility="deployment") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="persona-model-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dbAlias="model-version-id-local",dataCopy="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",requiredProps="id,bandwidth-up-wan1,bandwidth-down-wan1,bandwidth-up-wan2,bandwidth-down-wan2") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,persona-model-id,persona-model-version",dependentOn="service-instance",container="allotted-resources",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",dbAlias="model-invariant-id-local",requires="persona-model-version",visibility="deployment") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="persona-model-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dbAlias="model-version-id-local",dataCopy="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.",dbAlias="model-customization-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",dbAlias="model-invariant-id-local",requires="persona-model-version",visibility="deployment") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="persona-model-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dbAlias="model-version-id-local",dataCopy="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements",requiredProps="named-query-element-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",requiredProps="named-query-uuid,named-query-name,named-query-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",requiredProps="link-name,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",dbAlias="model-invariant-id-local",requires="persona-model-version",visibility="deployment") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="persona-model-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dbAlias="model-version-id-local",dataCopy="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,global-route-target,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",requiredProps="vpn-id,vpn-name,global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number used to identify a VPN, globally unique in the network",dataLink="./route-targets/route-target/{global-route-target}/{route-target-role}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this route target",dataLink="./route-targets/route-target/{global-route-target}/{route-target-role}",defaultValue="BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational",dbAlias="operational-status") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation",searchable="vnfc-name",container="vnfcs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="function code",dbAlias="nfc-naming-code") + + + + + + + @org.onap.aai.annotations.Metadata(description="type",dbAlias="nfc-function") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",requiredProps="network-id,network-name,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",dbAlias="model-invariant-id-local",requires="persona-model-version",visibility="deployment") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="persona-model-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dbAlias="model-version-id-local",dataCopy="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.",dbAlias="model-customization-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",requiredProps="vf-module-id,is-base-vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",dbAlias="model-invariant-id-local",requires="persona-model-version",visibility="deployment") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="persona-model-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dbAlias="model-version-id-local",dataCopy="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.",dbAlias="model-customization-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="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") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",requiredProps="vnf-id,vnf-name,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",dbAlias="operational-status") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by company or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only in some usecases") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",dbAlias="model-invariant-id-local",requires="persona-model-version",visibility="deployment") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="persona-model-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dbAlias="model-version-id-local",dataCopy="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.",dbAlias="model-customization-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational",dbAlias="operational-status") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by company or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="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.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="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",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user, ,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network",requiredProps="id,description,type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",requiredProps="zone-id,zone-name,design-type,zone-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large?]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v10/DbEdgeRules_v10.json b/aai-schema/src/main/resources/onap/dbedgerules/v10/DbEdgeRules_v10.json new file mode 100644 index 0000000..1f74945 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v10/DbEdgeRules_v10.json @@ -0,0 +1,1808 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "route-target", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_esr_v11.json b/aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_esr_v11.json new file mode 100644 index 0000000..e5ba23b --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_esr_v11.json @@ -0,0 +1,64 @@ +{ + "rules": [ + { + "from": "esr-system-info", + "to": "esr-ems", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-vnfm", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-thirdparty-sdnc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-thirdparty-sdnc", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_v11.json b/aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_v11.json new file mode 100644 index 0000000..bd9d617 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v11/DbEdgeRules_v11.json @@ -0,0 +1,2138 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vip-ipv4-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vip-ipv6-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "configuration", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "configuration", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pnf", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "line-of-business", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-instance", + "to": "owning-entity", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-pf", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "platform", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "project", + "to": "service-instance", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "sriov-pf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "host-route", + "to": "subnet", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vip-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vip-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vip-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vip-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vip-ipv4-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vip-ipv6-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "route-target", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_esr_v12.json b/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_esr_v12.json new file mode 100644 index 0000000..e5ba23b --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_esr_v12.json @@ -0,0 +1,64 @@ +{ + "rules": [ + { + "from": "esr-system-info", + "to": "esr-ems", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-vnfm", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-thirdparty-sdnc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-thirdparty-sdnc", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_hpa_v12.json b/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_hpa_v12.json new file mode 100644 index 0000000..b4ee250 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_hpa_v12.json @@ -0,0 +1,43 @@ +{ + "rules": [ + { + "from": "hpa-capability", + "to": "flavor", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description": "" + }, + { + "from": "hpa-capability", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description": "" + }, + { + "from": "hpa-feature-attributes", + "to": "hpa-capability", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "" + } + ] +} \ No newline at end of file diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_v12.json b/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_v12.json new file mode 100644 index 0000000..087a71a --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v12/DbEdgeRules_v12.json @@ -0,0 +1,2500 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pnf", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "line-of-business", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Source", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Destination", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "operational-environment", + "to": "operational-environment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "owning-entity", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-pf", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "platform", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "project", + "to": "service-instance", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-vf", + "to": "sriov-pf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "host-route", + "to": "subnet", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv4-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv6-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "route-target", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "l-interface", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "forwarding-path", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "service-instance", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "l-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder-evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "p-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_esr_v13.json b/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_esr_v13.json new file mode 100644 index 0000000..e5ba23b --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_esr_v13.json @@ -0,0 +1,64 @@ +{ + "rules": [ + { + "from": "esr-system-info", + "to": "esr-ems", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-vnfm", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-thirdparty-sdnc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-thirdparty-sdnc", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_hpa_v13.json b/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_hpa_v13.json new file mode 100644 index 0000000..1a0ca0a --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_hpa_v13.json @@ -0,0 +1,43 @@ +{ + "rules": [ + { + "from": "hpa-capability", + "to": "flavor", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description": "" + }, + { + "from": "hpa-capability", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description": "" + }, + { + "from": "hpa-feature-attributes", + "to": "hpa-capability", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_v13.json b/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_v13.json new file mode 100644 index 0000000..fb45589 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v13/DbEdgeRules_v13.json @@ -0,0 +1,2824 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "allotted-resource", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"AAI-1925" + }, + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pnf", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "line-of-business", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Source", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Destination", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "operational-environment", + "to": "operational-environment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "owning-entity", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-pf", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "platform", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "project", + "to": "service-instance", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-vf", + "to": "sriov-pf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "host-route", + "to": "subnet", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv4-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv6-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "route-target", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "l-interface", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "forwarding-path", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "service-instance", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "l-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder-evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "p-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "nos-server", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "nos-server", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "nos-server", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "configuration", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vpn-binding", + "to": "customer", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "forwarder", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "Points to the generic-vnf(s) involved in this forwarding step." + }, + { + "from": "cloud-region", + "to": "instance-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "instance-group", + "to": "collection", + "label": "org.onap.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "service-instance", + "to": "collection", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "vlan-mapping", + "to": "forwarder-evc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "allotted-resource", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "configuration", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "connector", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "generic-vnf", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "instance-group", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "l3-network", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "logical-link", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "service-instance", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "vf-module", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "vnfc", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "pnf", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "collection", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json new file mode 100644 index 0000000..90c6af3 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json @@ -0,0 +1,352 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"AAI-1925 For CCVPN Usecase" + }, + { + "from": "vpn-binding", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sp-partner", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "connectivity", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "connectivity", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "lan-port-config", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "lan-port-config", + "to": "dhcp-service", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "network-resource", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "pnf", + "to": "network-resource", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "complex", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "tenant", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "device", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "device", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "wan-port-config", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "ext-aai-network", + "to": "esr-system-info", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "logical-link", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "vpn-binding", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "pnf", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "connectivity", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "lan-port-config", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "network-resource", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "device", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "wan-port-config", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_esr_v14.json b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_esr_v14.json new file mode 100644 index 0000000..e5ba23b --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_esr_v14.json @@ -0,0 +1,64 @@ +{ + "rules": [ + { + "from": "esr-system-info", + "to": "esr-ems", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-vnfm", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-thirdparty-sdnc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-thirdparty-sdnc", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_hpa_v14.json b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_hpa_v14.json new file mode 100644 index 0000000..a2d4444 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_hpa_v14.json @@ -0,0 +1,68 @@ +{ + "rules": [ + { + "from": "hpa-capability", + "to": "flavor", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "hpa-capability", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "hpa-feature-attributes", + "to": "hpa-capability", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "hpa-capacity", + "to": "pserver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"HPA Capacity KV for given compute node" + }, + { + "from": "flavor", + "to": "pserver", + "label": "org.onap.relationships.inventory.CanBeInstantiatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"HPA Capacity getting the compute nodes from given flavor" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_pnp_v14.json b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_pnp_v14.json new file mode 100644 index 0000000..5f8f430 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_pnp_v14.json @@ -0,0 +1,17 @@ +{ + "rules": [ + { + "from": "software-version", + "to": "pnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_v14.json b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_v14.json new file mode 100644 index 0000000..2eed800 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_v14.json @@ -0,0 +1,3056 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "allotted-resource", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"AAI-1925" + }, + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pnf", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "line-of-business", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Source", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Destination", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "operational-environment", + "to": "operational-environment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "owning-entity", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-pf", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "platform", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "project", + "to": "service-instance", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-vf", + "to": "sriov-pf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "host-route", + "to": "subnet", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv4-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv6-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "route-target", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "l-interface", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "forwarding-path", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "service-instance", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "l-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder-evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "p-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "nos-server", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "nos-server", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "nos-server", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "configuration", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vpn-binding", + "to": "customer", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "forwarder", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "Points to the generic-vnf(s) involved in this forwarding step." + }, + { + "from": "cloud-region", + "to": "instance-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "instance-group", + "to": "collection", + "label": "org.onap.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "service-instance", + "to": "collection", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "vlan-mapping", + "to": "forwarder-evc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "allotted-resource", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "configuration", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "connector", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "generic-vnf", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "instance-group", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "l3-network", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "logical-link", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "service-instance", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "vf-module", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "vnfc", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "pnf", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "collection", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "configuration", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "cp", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"cp is child of vnfc" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan-tag", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan-tag", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan-tag", + "to": "cp", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "cp", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "cp", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "line-of-business", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "platform", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "instance-group", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "cloud-region", + "to": "network-technology", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + } + + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_ccvpn_v15.json b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_ccvpn_v15.json new file mode 100644 index 0000000..68f2986 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_ccvpn_v15.json @@ -0,0 +1,352 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"AAI-1925 For CCVPN Usecase" + }, + { + "from": "vpn-binding", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sp-partner", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "connectivity", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "connectivity", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "lan-port-config", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "lan-port-config", + "to": "dhcp-service", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "network-resource", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "pnf", + "to": "network-resource", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "complex", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "tenant", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "device", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "device", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "wan-port-config", + "to": "service-instance", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "ext-aai-network", + "to": "esr-system-info", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "logical-link", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "vpn-binding", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "pnf", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "connectivity", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "lan-port-config", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "network-resource", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "site-resource", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "sdwan-vpn", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "device", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + }, + { + "from": "wan-port-config", + "to": "ext-aai-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "!${direction}", + "default": "true", + "description":"For CCVPN Usecase" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_esr_v15.json b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_esr_v15.json new file mode 100644 index 0000000..e5ba23b --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_esr_v15.json @@ -0,0 +1,64 @@ +{ + "rules": [ + { + "from": "esr-system-info", + "to": "esr-ems", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-vnfm", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "esr-thirdparty-sdnc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-thirdparty-sdnc", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "esr-system-info", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_hpa_v15.json b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_hpa_v15.json new file mode 100644 index 0000000..a2d4444 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_hpa_v15.json @@ -0,0 +1,68 @@ +{ + "rules": [ + { + "from": "hpa-capability", + "to": "flavor", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "hpa-capability", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "hpa-feature-attributes", + "to": "hpa-capability", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "hpa-capacity", + "to": "pserver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"HPA Capacity KV for given compute node" + }, + { + "from": "flavor", + "to": "pserver", + "label": "org.onap.relationships.inventory.CanBeInstantiatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"HPA Capacity getting the compute nodes from given flavor" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_pnp_v15.json b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_pnp_v15.json new file mode 100644 index 0000000..5f8f430 --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_pnp_v15.json @@ -0,0 +1,17 @@ +{ + "rules": [ + { + "from": "software-version", + "to": "pnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_v15.json b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_v15.json new file mode 100644 index 0000000..1f6829c --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v15/DbEdgeRules_v15.json @@ -0,0 +1,3172 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "allotted-resource", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"AAI-1925" + }, + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pnf", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "line-of-business", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Source", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "logical-link", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Destination", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "operational-environment", + "to": "operational-environment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "owning-entity", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-pf", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "platform", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "project", + "to": "service-instance", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA":"NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"MSO creates this edge on VNF Group Service creation" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "sriov-vf", + "to": "sriov-pf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "host-route", + "to": "subnet", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vnfc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv4-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vip-ipv6-address-list", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "route-target", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "l-interface", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "pnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "forwarding-path", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "service-instance", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "l-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarding-path", + "to": "configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder-evc", + "to": "configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "forwarder", + "to": "p-interface", + "label": "org.onap.relationships.inventory.ForwardsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "nos-server", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "nos-server", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "nos-server", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "configuration", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "configuration", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vpn-binding", + "to": "customer", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "service-instance", + "to": "configuration", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "forwarder", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "Points to the generic-vnf(s) involved in this forwarding step." + }, + { + "from": "cloud-region", + "to": "instance-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "instance-group", + "to": "collection", + "label": "org.onap.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "service-instance", + "to": "collection", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "vlan-mapping", + "to": "forwarder-evc", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description": "" + }, + { + "from": "allotted-resource", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "configuration", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "connector", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "generic-vnf", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "instance-group", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "l3-network", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "logical-link", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "service-instance", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "vf-module", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "vnfc", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "pnf", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "collection", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}", + "private": "true" + }, + { + "from": "configuration", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vnfc", + "to": "cp", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"cp is child of vnfc" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv4-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vip-ipv6-address-list", + "to": "cp", + "label": "org.onap.relationships.inventory.network.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan-tag", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan-tag", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vlan-tag", + "to": "cp", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l-interface", + "to": "cp", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "cp", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "line-of-business", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "platform", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "l3-network", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "instance-group", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "false", + "description":"" + }, + { + "from": "cloud-region", + "to": "network-technology", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "vrf", + "to": "pnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"A vrf belongs to a pnf." + }, + { + "from": "vrf", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"A vrf uses a vpn-binding." + }, + { + "from": "vrf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"A vrf uses many l3-networks" + }, + { + "from": "configuration", + "to": "vrf", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"A Configuration uses VRFs" + }, + { + "from": "vrf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "route-target", + "to": "vrf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "contact", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.supports", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + }, + { + "from": "aggregate-route", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE", + "default": "true", + "description":"" + } + + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v8/DbEdgeRules_v8.json b/aai-schema/src/main/resources/onap/dbedgerules/v8/DbEdgeRules_v8.json new file mode 100644 index 0000000..d01409e --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v8/DbEdgeRules_v8.json @@ -0,0 +1,1467 @@ +{ + "rules": [ + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model", + "to": "model-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v9/DbEdgeRules_v9.json b/aai-schema/src/main/resources/onap/dbedgerules/v9/DbEdgeRules_v9.json new file mode 100644 index 0000000..c41864a --- /dev/null +++ b/aai-schema/src/main/resources/onap/dbedgerules/v9/DbEdgeRules_v9.json @@ -0,0 +1,1731 @@ +{ + "rules": [ + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "org.onap.relationships.inventory.PartOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tunnel-xconnect", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "availability-zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "availability-zone", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "flavor", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "group-assignment", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "image", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "snapshot", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "volume-group", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "complex", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "complex", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "connector", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "element-choice-set", + "to": "constrained-element-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "service-subscription", + "to": "customer", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "element-choice-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "entitlement", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vnfc", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "network-profile", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair-set", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "tenant", + "to": "group-assignment", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "image", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "instance-group", + "to": "model", + "label": "org.onap.relationships.inventory.Targets", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vig-server", + "to": "ipsec-configuration", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "org.onap.relationships.inventory.network.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "ctag-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "segmentation-assignment", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "l3-network", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "subnet", + "to": "l3-network", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "lag-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "sriov-vf", + "to": "l-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "l-interface", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "org.onap.relationships.inventory.BridgedTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-ver", + "to": "model", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-constraint", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "constrained-element-set", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-constraint", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query", + "to": "model", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "named-query-element", + "to": "model", + "label": "org.onap.relationships.inventory.IsA", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "property-constraint", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "related-lookup", + "to": "named-query-element", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "newvce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "oam-network", + "to": "complex", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "org.onap.relationships.inventory.AppliesTo", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "l-interface", + "to": "p-interface", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "tosca.relationships.network.LinksTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pnf", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pnf", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "cvlan-tag", + "to": "port-group", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "lag-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "pserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "pserver", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "pserver", + "to": "zone", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "site-pair", + "to": "routing-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "allotted-resource", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "service-instance", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "connector", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "org.onap.relationships.inventory.MemberOf", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "service-subscription", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "class-of-service", + "to": "site-pair", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "routing-instance", + "to": "site-pair-set", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-subscription", + "to": "tenant", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "tenant", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "entitlement", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "license", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "port-group", + "to": "vce", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "service-instance", + "to": "vce", + "label": "org.onap.relationships.inventory.ComposedOf", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vce", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "${direction}", + "default": "true" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "generic-vnf", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "logical-link", + "to": "virtual-data-center", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "vlan", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "tenant", + "to": "volume-group", + "label": "org.onap.relationships.inventory.DependsOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "volume-group", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "lag-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "p-interface", + "to": "vpls-pe", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "l-interface", + "to": "vserver", + "label": "tosca.relationships.network.BindsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vf-module", + "to": "vserver", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vnfc", + "to": "vserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "flavor", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "image", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "pserver", + "label": "tosca.relationships.HostedOn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "org.onap.relationships.inventory.Uses", + "direction": "OUT", + "multiplicity": "ONE2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "vserver", + "to": "volume", + "label": "tosca.relationships.AttachesTo", + "direction": "OUT", + "multiplicity": "ONE2MANY", + "contains-other-v": "${direction}", + "delete-other-v": "${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "metadatum", + "to": "model-ver", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true" + }, + { + "from": "zone", + "to": "complex", + "label": "org.onap.relationships.inventory.LocatedIn", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "prevent-delete": "!${direction}", + "default": "true" + } + ] +} diff --git a/aai-schema/src/main/resources/onap/oxm/v10/aai_oxm_v10.xml b/aai-schema/src/main/resources/onap/oxm/v10/aai_oxm_v10.xml new file mode 100644 index 0000000..9397c15 --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v10/aai_oxm_v10.xml @@ -0,0 +1,5585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/oxm/v11/aai_oxm_v11.xml b/aai-schema/src/main/resources/onap/oxm/v11/aai_oxm_v11.xml new file mode 100644 index 0000000..2b9f65e --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v11/aai_oxm_v11.xml @@ -0,0 +1,6564 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/oxm/v12/aai_oxm_v12.xml b/aai-schema/src/main/resources/onap/oxm/v12/aai_oxm_v12.xml new file mode 100644 index 0000000..3d984fc --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v12/aai_oxm_v12.xml @@ -0,0 +1,6987 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/oxm/v13/aai_oxm_v13.xml b/aai-schema/src/main/resources/onap/oxm/v13/aai_oxm_v13.xml new file mode 100644 index 0000000..be34895 --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v13/aai_oxm_v13.xml @@ -0,0 +1,7060 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/oxm/v14/aai_oxm_v14.xml b/aai-schema/src/main/resources/onap/oxm/v14/aai_oxm_v14.xml new file mode 100644 index 0000000..c7d8d97 --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v14/aai_oxm_v14.xml @@ -0,0 +1,8484 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/oxm/v15/aai_oxm_v15.xml b/aai-schema/src/main/resources/onap/oxm/v15/aai_oxm_v15.xml new file mode 100644 index 0000000..e7aba88 --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v15/aai_oxm_v15.xml @@ -0,0 +1,8673 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/oxm/v8/aai_oxm_v8.xml b/aai-schema/src/main/resources/onap/oxm/v8/aai_oxm_v8.xml new file mode 100644 index 0000000..f23be3c --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v8/aai_oxm_v8.xml @@ -0,0 +1,4778 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/resources/onap/oxm/v9/aai_oxm_v9.xml b/aai-schema/src/main/resources/onap/oxm/v9/aai_oxm_v9.xml new file mode 100644 index 0000000..59aea58 --- /dev/null +++ b/aai-schema/src/main/resources/onap/oxm/v9/aai_oxm_v9.xml @@ -0,0 +1,5469 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/main/xjb/bindings-onap.xjb b/aai-schema/src/main/xjb/bindings-onap.xjb new file mode 100644 index 0000000..22b11d8 --- /dev/null +++ b/aai-schema/src/main/xjb/bindings-onap.xjb @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java b/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java new file mode 100644 index 0000000..cd8c76f --- /dev/null +++ b/aai-schema/src/test/java/org/onap/aai/schema/ValidateOXMTest.java @@ -0,0 +1,160 @@ +/** + * ============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.schema; + + +//import org.junit.Test; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.filefilter.DirectoryFileFilter; +import org.apache.commons.io.filefilter.RegexFileFilter; +import org.junit.Test; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; +import java.io.*; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +public class ValidateOXMTest { + + @Test + public void testFindXmlPropContainingSpace() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException { + boolean foundIssue = false; + List fileList = getFiles(); + + StringBuilder msg = new StringBuilder(); + for (File file : fileList) { + msg.append(file.getAbsolutePath().replaceAll(".*aai-schema", "")); + msg.append("\n"); + Document xmlDocument = getDocument(file); + XPath xPath = XPathFactory.newInstance().newXPath(); + String expression = "/xml-bindings/java-types/java-type/xml-properties/xml-property[@name!='description' and contains(@value,' ')]"; + NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET); + + for (int i = 0; i < nodeList.getLength(); i++) { + foundIssue = true; + msg.append("\t"); + msg.append(nodeList.item(i).getParentNode().getParentNode().getAttributes().getNamedItem("name").getNodeValue()); + msg.append("\n"); + msg.append("\t"); + msg.append("\n"); + } + + } + + if (foundIssue) { + System.out.println(msg.toString()); + fail("Node type xml-property should have space."); + } + + } + + /** + * Verifies that all of the node types in the oxm's have their uri templates. + * @throws XPathExpressionException + * @throws IOException + * @throws SAXException + * @throws ParserConfigurationException + */ + @Test + public void allNodeTypesHaveAAIUriTemplate() throws XPathExpressionException, IOException, SAXException, ParserConfigurationException { + boolean foundIssue = false; + List fileList = getFiles(); + + StringBuilder msg = new StringBuilder(); + for (File file : fileList) { + msg.append(file.getAbsolutePath().replaceAll(".*aai-schema", "")); + msg.append("\n"); + Document xmlDocument = getDocument(file); + XPath xPath = XPathFactory.newInstance().newXPath(); + String expression = "/xml-bindings/java-types/java-type[count(xml-properties/xml-property[@name='container']) > 0 and count(xml-properties/xml-property[@name='uriTemplate']) = 0 ]"; + NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET); + + for (int i = 0; i < nodeList.getLength(); i++) { + String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue(); + if (name.equals("InstanceFilter") || name.equals("InventoryResponseItems") || name.equals("InventoryResponseItem")) { + continue; + } + foundIssue = true; + msg.append("\t"); + msg.append(name); + msg.append("\n"); + } + } + if (foundIssue) { + System.out.println(msg.toString()); + fail("Missing uriTemplate in oxm."); + } + + } + + private List getFiles() { + Path currentRelativePath = Paths.get("../aai-schema/src/main/resources/").toAbsolutePath(); + return FileUtils.listFiles( + currentRelativePath.toFile(), + new RegexFileFilter(".*\\.xml"), + DirectoryFileFilter.DIRECTORY) + .stream().filter(file -> file.getAbsolutePath().contains("oxm")) + .collect(Collectors.toList()); + } + + //TODO test that all oxm xml are valid xml + + + + public String printNodeList(NodeList nodeList, Document doc) throws IOException { + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < nodeList.getLength(); i++) { + stringBuilder.append(printNode(nodeList.item(i), doc)).append("\n"); + } + return stringBuilder.toString(); + } + + public String printNode(Node node, Document document) throws IOException { + StringWriter stringWriter = new StringWriter(); + return stringWriter.toString(); + + } + + private Document getDocument(File file) throws ParserConfigurationException, SAXException, IOException { + InputStream fileIS = new FileInputStream(file); + DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = builderFactory.newDocumentBuilder(); + return builder.parse(fileIS); + } + +} diff --git a/pom.xml b/pom.xml index 4e528dd..589c8e1 100644 --- a/pom.xml +++ b/pom.xml @@ -34,6 +34,9 @@ aai-schema-service pom + aai-annotations + aai-schema-gen + aai-schema aai-schema-service -- 2.16.6